zoukankan      html  css  js  c++  java
  • 在C#中通过使用Newtonsoft.Json库来解析百度地图地理编码(GeoCoder)服务接口返回的Json格式的数据

    百度地图地理编码(GeoCoder)服务接口返回的Json格式的数据,如下所示:

    http://api.map.baidu.com/geocoding/v3/?address=**省**市**区**路**号院**社区&output=json&ak=您的AK密钥

    返回结果实例:

                {
                     "status":0,
                     "result":
                                  {
                                     "location":{"lng":116.79, "lat":39.99},
                                     "precise":1,
                                     "confidence":70,
                                     "comprehension":100,
                                     "level":"地产小区"
                                   }
                 }

    本文简要介绍如何在C#中通过使用Newtonsoft.Json库来解析Json格式的数据。

    1、创建主应用程序(控制台或Winform程序均可);

    2、引入Newtonsoft.Json.dll。

    3、在工程中创建如下的类:

          public class Location
            {
                [JsonProperty("lng")]
                public double Lng { get; set; }
                [JsonProperty("lat")]
                public double Lat { get; set; }
            }
    
            public class Result
            {
                [JsonProperty("location")]
                public Location Location { get; set; }
                [JsonProperty("precise")]
                public int Precise { get; set; }
                [JsonProperty("confidence")]
                public int Confidence { get; set; }
                [JsonProperty("comprehension")]
                public int Comprehension { get; set; }
                [JsonProperty("level")]
                public string Level { get; set; }
            }
    
            public class RecordResult
            {
                [JsonProperty("status")]
                public int Status { get; set; }
                [JsonProperty("result")]
                public Result Result { get; set; }
            }

    4、构建URL服务连接,发起Http请求,获取响应数据流中的内容,调用JsonConvert.DeserializeObject()方法将字符串反序列化为对象即可,调用的cs文件中需要添加using Newtonsoft.Json;名称空间的引用:

    string  m_CurrentSearchUri="http://api.map.baidu.com/geocoding/v3/?address=**省**市**区**路**号院**社区&output=json&ak=您的AK密钥";
    WebClient client = new WebClient();
    client.Encoding = Encoding.UTF8;
    //将返回的json数据转为JSON对象
    RecordResult joResult = JsonConvert.DeserializeObject<RecordResult>(client.DownloadString(m_CurrentSearchUri));

    5、当然了,上述的Http请求也可以采用HttpWebRequest和HttpWebResponse来完成。

     // 送出要求
     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(m_CurrentSearchUri);
     // 取得回應
     HttpWebResponse response = (HttpWebResponse)request.GetResponse();
     StreamReader sr = new StreamReader(response.GetResponseStream());
     //得到一个json字符串
     string joResultTemp = sr.ReadToEnd().ToString();
     //将返回的json数据转为JSON对象
     RecordResult joResult = JsonConvert.DeserializeObject<RecordResult>(joResultTemp);
  • 相关阅读:
    Linux入门
    Python接入支付宝进行PC端支付
    DRF之注册器响应器分页器
    Sencha Touch 实战开发培训 视频教程 第二期 第七节
    Sencha Touch 实战开发培训 视频教程 第二期 第六节
    Sencha Touch 实战开发培训 视频教程 第二期 第五节
    sencha touch 百度地图扩展(2014-6-24)(废弃 仅参考)
    Sencha Touch 实战开发培训 视频教程 第二期 第四节
    Sencha Touch 实战开发培训 视频教程 第二期 第三节
    sencha touch 扩展官方NavigationView 灵活添加按钮组,导航栏,自由隐藏返回按钮(2014-5-15)
  • 原文地址:https://www.cnblogs.com/rainbow70626/p/12350661.html
Copyright © 2011-2022 走看看