全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

详解ASP.NET提取多层嵌套json数据的方法

本文实例讲述了ASP.NET利用第三方类库Newtonsoft.Json提取多层嵌套json数据的方法,具体例子如下。

假设需要提取的json字符串如下:

{"name":"lily","age":23,"addr":{"city":guangzhou,"province":guangdong}}

先引用命名空间:

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

可以把上面的json字符串看成一个对象,只要编写对应的类即可(如果使用VS2013进行开发,可以通过“编辑--选择性粘贴--将JSON粘贴为类”快速地将json字符串转换为实体类)

 public class UserInfo
 {
  public string name;
  public int age;
  public address addr;
 }
 public class address
 {
  public string city;
  public string province;
 }

1、将json字符串转换为实体对象的代码如下:

string jsonData="{\"name\":\"lily\",\"age\":23,\"addr\":{\"city\":guangzhou,\"province\":guangdong}}";
UserInfo user=(UserInfo)JsonConvert.DeserializeObject(jsonData, typeof(UserInfo));

2、读取json中某个属性的值可以使用一下代码:

JObject jsonObj = JObject.Parse(jsonData);
string name=jsonObj ["name"].ToString();
string age=jsonObj ["age"].ToString();
string city=((JObject )jsonObj ["addr"])["city"].ToString();
string province=((JObject )jsonObj ["addr"])["province"].ToString();

3、解释多层嵌套json,获取任意属性的值:

如果需要处理的json字符串如下:

{"name":"lily","age":23,"addr":{"city":guangzhou,"province":guangdong}};

然后让你输入一个对象,如“city”,系统就会输出“guangzhou”,输入“age”,就输出“23”。由于json是多级嵌套的,所以需要逐个遍历,代码如下:

  public string GetJsonValue(JEnumerable<JToken> jToken, string key)
  {
   IEnumerator enumerator = jToken.GetEnumerator();
   while (enumerator.MoveNext())
   {
    JToken jc = (JToken)enumerator.Current;
    if (jc is JObject || ((JProperty)jc).Value is JObject)
    {
     return GetJsonValue(jc.Children(), key);
    }
    else
    {
     if (((JProperty)jc).Name == key)
     {
      return ((JProperty)jc).Value.ToString();
     }
    }
   }
   return null;
  }

调用GetJsonValue的代码:

string jsonData = "{\"name\":\"lily\",\"age\":23,\"addr\":{\"city\":\"guangzhou\",\"province\":\"guangdong\"}}";
JObject jsonObj = JObject.Parse(jsonData);
Response.Write(GetJsonValue(jsonObj.Children(), "province"));

如果是多层嵌套的数组,也可以使用以下代码:

string jsonData = "{\"addr\":[{\"city\":\"guangzhou\",\"province\":\"guangdong\"},{\"city\":\"guiyang\",\"province\":\"guizhou\"}]}";
JObject jsonObj = JObject.Parse(jsonData);
JArray jar = JArray.Parse(jsonObj["addr"].ToString());
JObject j = JObject.Parse(jar[0].ToString());
Response.Write(j["city"]);

4、JSON转XML:

复制代码 代码如下:
string xmlstr=((XmlDocument)JsonConvert.DeserializeXmlNode(jsonData)).InnerXml.ToString();

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# ASP.NET  # json多层嵌套  # c#  # 通过js把一个数组修改成多层嵌套多个数组的几种方法总结  # java如何使用fastjson修改多层嵌套的Objectjson数据  # java解析多层嵌套json字符串问题  # Java 多层嵌套JSON类型数据全面解析  # 接口自动化多层嵌套json数据处理代码实例  # AngularJS使用ui-route实现多层嵌套路由的示例  # js中如何将多层嵌套的数组转换为一层数组  # 可以使用  # 转换为  # 就会  # 让你  # 遍历  # 可以通过  # 第三方  # 大家多多  # 类库  # 讲述了  # 实体类  # DeserializeXmlNode  # JSON  # Linq  # province  # guangdong  # csharp  # XmlDocument  # strong  # int 


相关文章: 如何在Windows环境下新建FTP站点并设置权限?  javascript中对象的定义、使用以及对象和原型链操作小结  创业网站制作流程,创业网站可靠吗?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  小程序网站制作需要准备什么资料,如何制作小程序?  如何在自有机房高效搭建专业网站?  交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?  建站之星各版本价格是多少?  如何选择网络建站服务器?高效建站必看指南  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  昆明网站制作哪家好,昆明公租房申请网上登录入口?  如何获取开源自助建站系统免费下载链接?  建站为何优先选择香港服务器?  网站制作多少钱一个,建一个论坛网站大约需要多少钱?  如何在西部数码注册域名并快速搭建网站?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?  网站制作的方法有哪些,如何将自己制作的网站发布到网上?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  宁波自助建站系统如何快速打造专业企业网站?  专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何用免费手机建站系统零基础打造专业网站?  如何配置WinSCP新建站点的密钥验证步骤?  枣阳网站制作,阳新火车站打的到仙岛湖多少钱?  建站之星后台密码遗忘或太弱?如何重置与强化?  ui设计制作网站有哪些,手机UI设计网址吗?  建站上市公司网站建设方案与SEO优化服务定制指南  如何设计高效校园网站?  如何用VPS主机快速搭建个人网站?  如何做静态网页,sublimetext3.0制作静态网页?  Python路径拼接规范_跨平台处理说明【指导】  非常酷的网站设计制作软件,酷培ai教育官方网站?  青浦网站制作公司有哪些,苹果官网发货地是哪里?  ,柠檬视频怎样兑换vip?  建站之星安装后如何自定义网站颜色与字体?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  存储型VPS适合搭建中小型网站吗?  制作企业网站建设方案,怎样建设一个公司网站?  在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?  C#如何序列化对象为XML XmlSerializer用法  建站主机是否属于云主机类型?  如何在阿里云虚拟主机上快速搭建个人网站?  建站主机空间推荐 高性价比配置与快速部署方案解析  如何快速打造个性化非模板自助建站?  网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?  盐城做公司网站,江苏电子版退休证办理流程?  魔毅自助建站系统:模板定制与SEO优化一键生成指南  视频网站制作教程,怎么样制作优酷网的小视频?  如何通过宝塔面板实现本地网站访问? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。