您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
三六零分类信息网 > 吕梁分类信息网,免费分类信息发布

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

2024/4/7 22:02:21发布40次查看
本篇文章主要介绍了asp.net提取多层嵌套json数据的方法,利用第三方类库newtonsoft.json提取多层嵌套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数据的方法。
吕梁分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录