• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    asp.net提取多层嵌套json数据的方法

    本文实例讲述了asp.net提取多层嵌套json数据的方法。分享给大家供大家参考,具体如下:

    在.net 2.0中提取这样的json:

    复制代码 代码如下:
    {"name":"lily","age":23,"addr":{"city":guangzhou,"province":guangdong}}

    引用命名空间:

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

    可以把上面的JSON看成一个对象.你只要写对应的类即可

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

    然后在解析的地方这样写:

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

    得到City的值只要:user.addr.City;

    这样实现也行

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

    如何这个json是动态的呢?譬如让你输入一个json,如

    复制代码 代码如下:
    {"name":"lily","age":23,"addr":{"city":guangzhou,"province":guangdong}};

    然后让你输入一个对象,如city,然后系统会输出guangzhou这个值,那这样的话,json就是动态生成的了,我想了解有没有读取这样的json的方法。(注意,json是多级嵌套的。)

    就用遍历

    public string GetJsonValue(JEnumerableJToken> 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;
    }
    
    

    在调用的时候:

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

    JSON转XML:

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

    PS:关于json格式数据操作小编这里推荐几款本站的在线工具供大家免费使用,相信在以后的开发中可以派上用场:

    在线JSON代码检验、检验、美化、格式化工具:
    http://tools.jb51.net/code/json

    在线XML/JSON互相转换工具:
    http://tools.jb51.net/code/xmljson

    C语言风格/HTML/CSS/json代码格式化美化工具:
    http://tools.jb51.net/code/ccode_html_css_json

    json代码在线格式化/美化/压缩/编辑/转换工具:
    http://tools.jb51.net/code/jsoncodeformat

    更多关于asp.net相关内容感兴趣的读者可查看本站专题:《asp.net操作json技巧总结》、《asp.net字符串操作技巧汇总》、《asp.net操作XML技巧总结》、《asp.net文件操作技巧汇总》、《asp.net ajax技巧总结专题》及《asp.net缓存操作技巧总结》。

    希望本文所述对大家asp.net程序设计有所帮助。

    您可能感兴趣的文章:
    • 使用jQuery向asp.net Mvc传递复杂json数据-ModelBinder篇
    • 使用ASP.NET一般处理程序或WebService返回JSON的实现代码
    • asp.net(C#)解析Json的类代码
    • asp.net JSONHelper JSON帮助类
    • Jquery 组合form元素为json格式,asp.net反序列化
    • asp.net+jquery Jsonp使用方法
    • Jquery中getJSON在asp.net中的使用说明
    • ASP.NET JSON字符串与实体类的互转换示例代码
    • jQuery+ajax+asp.net获取Json值的方法
    • 解决Asp.net Mvc返回JsonResult中DateTime类型数据格式问题的方法
    • asp.net使用DataTable构造Json字符串的方法
    • ASP.NET中XML转JSON的方法实例
    上一篇:Json.net 常用使用小结(推荐)
    下一篇:asp.net DataTable相关操作集锦(筛选,取前N条数据,去重复行,获取指定列数据等)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    asp.net提取多层嵌套json数据的方法 asp.net,提取,多层,嵌套,json,