• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > 详解ASP.NET提取多层嵌套json数据的方法

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

作者:_非与或 字体:[增加 减小] 来源:互联网 时间:2017-05-11

_非与或通过本文主要向大家介绍了asp json,asp json解析,asp生成json,asp 返回json,asp 获取api json数据等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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

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

{"name":"lily","age":23,"addr":{"city":guangzhou,"province":guangdong}}
</div>

先引用命名空间:

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
</div>

可以把上面的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;
 }
</div>

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

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

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();
</div>

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

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

{"name":"lily","age":23,"addr":{"city":guangzhou,"province":guangdong}};
</div>

然后让你输入一个对象,如“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;
  }
</div>

调用GetJsonValue的代码:

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

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

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"]);
</div>

4、JSON转XML:

string xmlstr=((XmlDocument)JsonConvert.DeserializeXmlNode(jsonData)).InnerXml.ToString();
</div>

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

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 详解ASP.NET提取多层嵌套json数据的方法
  • 详解ASP.NET Core 在 JSON 文件中配置依赖注入
  • JSON在ASP.NET中使用方法
  • 浅析ASP.NET万能JSON解析器
  • 解析Asp.net,C# 纯数字加密解密字符串的应用

相关文章

  • 2017-05-11ASP.NET中ServerPush用法实例分析
  • 2017-05-11Asp.net第三方控件ComboBox组合框介绍
  • 2017-05-11C#默认以管理员身份运行程序实现代码
  • 2017-05-11asp.net Timer的使用方法
  • 2017-05-11浅析ASP.NET生成随机密码函数
  • 2017-05-11.NET实现热插拔功能(动态替换功用)方案实例
  • 2017-05-11ASP.NET中的几种弹出框提示基本实现方法
  • 2017-05-11IIS和.NET(1.1/2.0)的安装顺序及错误解决方法
  • 2017-05-11asp.net 验证码生成和刷新及验证
  • 2017-05-11ajaxToolkit:AccordionPane演示与应用实例

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#实现上传照片到物理路径,并且将地址保存到数据库的小例子
    • 一个简单的文件MD5码自动计算比较器(附源码)
    • asp.net core MVC 全局过滤器之ExceptionFilter过滤器(1)
    • asp.net判断字符串是否是中文的方法
    • ASP.NET中如何实现回调
    • ASP.NET自定义Web服务器控件之Button控件
    • asp.C#实现图片文件与base64string编码解码
    • 读取XML并绑定至RadioButtonList实现思路及演示动画
    • Asp.net 中使用GridView控件实现Checkbox单选
    • ADO.NET之连接池技术的使用详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有