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

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

返回结果实例:

            {
"status":,
"result":
{
"location":{"lng":116.79, "lat":39.99},
"precise":,
"confidence":,
"comprehension":,
"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);

在C#中通过使用Newtonsoft.Json库来解析百度地图地理编码(GeoCoder)服务接口返回的Json格式的数据的更多相关文章

  1. Java中哪个JSON库的解析速度是最快的?

    JSON已经成为当前服务器与WEB应用之间数据传输的公认标准,不过正如许多我们所习以为常的事情一样,你会觉得这是理所当然的便不再深入思考 了.我们很少会去想用到的这些JSON库到底有什么不同,但事实上 ...

  2. 用javascript向一个网页连接接口发送请求,并接收该接口返回的json串

    一般前端与后端的互交都是通过json字符串来互交的,我的理解就是与网页接口的来回数据传递采用的数据结构就是json.一般是这样. 比如后端的代码是这样的: @RequestMapping(value ...

  3. android菜鸟学习笔记25----与服务器端交互(二)解析服务端返回的json数据及使用一个开源组件请求服务端数据

    补充:关于PHP服务端可能出现的问题: 如果你刚好也像我一样,用php实现的服务端程序,采用的是apache服务器,那么虚拟主机的配置可能会影响到android应用的调试!! 在android应用中访 ...

  4. Node.js 使用jQuery取得Nodejs http服务端返回的JSON数组示例

    server.js代码: // 内置http模块,提供了http服务器和客户端功能(path模块也是内置模块,而mime是附加模块) var http=require("http" ...

  5. Node.js 使用jQuery取得Nodejs http服务端返回的JSON对象示例

    server.js代码: // 内置http模块,提供了http服务器和客户端功能(path模块也是内置模块,而mime是附加模块) var http=require("http" ...

  6. 服务端返回的json数据,导致前端报错的原因及解决方法

    前言 最近在开发的过程中遇到了一个问题:后端传过来的json字符串不是标准的json字符串 导致报错的原因 后端传过来的json字符串中包含一些不标准的字符或错误的引号嵌套 1)\n 2) \r 3) ...

  7. Node.js 使用angularjs取得Nodejs http服务端返回的JSON数组示例

    server.js代码: // 内置http模块,提供了http服务器和客户端功能(path模块也是内置模块,而mime是附加模块) var http=require("http" ...

  8. linux下bom头导致的php调用php接口 返回的json字符串 无法转成 数组,即json字符串无法解码的问题

    今天很是郁闷,写了一个php接口,返回的是标准的json字符串,但是调用的php 就是无法json_decode(),返回错误码为4,最后终于找到原因,原来是蒙一个文件中有bom头,最后采用一个命令 ...

  9. jmeter beanshell遍历接口返回的json数组

    import java.util.LinkedHashMap; import com.jayway.jsonpath.JsonPath; import com.jayway.jsonpath.Pred ...

随机推荐

  1. php进程 热更新

    后台启动的php守护进程时 文件内include的代码变更并未生效,需要重启进程,我们可以更新代码后手动重启.但是有些对失效要求较高.那就需要自动重启了.下面整理出三个方案用以实现. 1  inoti ...

  2. Some collections were archived because you’ve reached the shared requests limits.错误解决

    今天打开我的postman 发现我的一个collection不见了,左下角出现一个提示, Some collections were archived because you’ve reached t ...

  3. map + 前缀和

    B. Balanced Substring time limit per test 1 second memory limit per test 256 megabytes input standar ...

  4. 安装SQL的时候,设置用户权限失败

    在安装sql的时候,遇到一个问题: 在查看报表明细中,提示: 就是这三个: 首先确保你是使用管理员用户安装的,如果还不行,运行 secpol.msc 进入本地安全策略 把自己的用户名加入进来就好了.

  5. 幽灵java进程引起的: FATAL ERROR in native method

    FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT( ...

  6. Codeforces Round #615 (Div. 3) 题解

    A - Collecting Coins 题意: 给你四个数a,b,c,d,n.问你是否能将n拆成三个数A,B,C,使得A+a=B+b=C+c. 思路: 先计算三个数的差值的绝对值abs,如果abs大 ...

  7. influxdb基础那些事儿

    InfluxDB是一个开源的时序数据库,使用GO语言开发,特别适合用于处理和分析资源监控数据这种时序相关数据.而InfluxDB自带的各种特殊函数如求标准差,随机取样数据,统计数据变化比等,使数据统计 ...

  8. jade 网上看到一个不错的demo 分享 一下 链接

    http://download.csdn.net/detail/sarah1992/9347903 启动的时候 先启动 http://localhost:8080/ 在 node chat 启动 ht ...

  9. 为什么RChain区块链上一定要有REV?

    RChain区块链网络上一定要有REV吗?它的作用是什么?在这篇文章里,RChain创始人Mr. Greg Meredith做了详细解读,便于业界和社区对RChain网络有更深入的认识. 作者:Gre ...

  10. [CF1037F]Maximum Reduction

    题意 https://codeforces.com/contest/1037/problem/F 思考 摘自一种比较有趣的做法.我们对序列进行分治,每次统计跨过mid的区间的贡献.其正确性是保证的:每 ...