百度地图地理编码(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()方法将字符串反序列化为对象即可:

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来完成。

版权声明:本文为rainbow70626原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/rainbow70626/p/12350661.html