asp.net使用Newtonsoft反序列化json字符串无需建实体类的便携操作,类似java的JSONObject

asp.net使用Newtonsoft反序列化json字符串无需建实体类的便携操作,类似java的JSONObject
有时我们仅需简单的获取一个json中的属性值,不想新建一个实体类去反序列化太费时了.
比如这样一串json字符串:
{
"name":"张三",
"age":18,
"address":"某某省某某市....",
"school":{
    "addr":"某某市某某路..3333号",
    "area":"3333"
},
"friend":[
{
"name":"李四"
},{
"name":"钻石王老五"
},{
"name":"刘六"
}
]
........
}
//从json字符串创建JObject
JObject jobject = JObject.Parse(str);
//使用以下语句即可获取他的年龄:
var age=jobject["age"].ToString();
//获取学校地址:
var age=jobject["school"]["addr"].ToString();
//获取所有朋友的名称
var friendNameList =jo["friend"].Select(p=>(string)p["name"]).ToList();

//也可以使用这种方法:
//使用以下语句即可获取他的年龄:
var jobject = Newtonsoft.Json.JsonConvert.DeserializeObject<JObject>(jsonstring);
var v = jobject.SelectToken("age");
string age=v.ToString();
//获取学校地址:
var jobject = Newtonsoft.Json.JsonConvert.DeserializeObject<JObject>(jsonstring);
var v = jobject.SelectToken("school.addr");
string age=v.ToString();

使用到了JObject这个类,在Newtonsoft.Json.Linq这个命名空间下
SelectToken这个方法搜索
如果要搜索集合使用SelectTokens

想要获取他的朋友的姓名集合使用:
var jobject = Newtonsoft.Json.JsonConvert.DeserializeObject<JObject>(jsonstring);
var friendNameList = jObject.SelectTokens("friend[*].name").ToList();
 

转载请说明出处:第六感博客 原文链接:

标签: C# Asp.Net json

相关阅读:

C#使用RSA非对称加密字符串 附Helper帮助类

asp.net WebPage WebMvc 压缩输出html

asp.net 内置委托 Action 和 Func 和 Predicate

vs生成成功但发布时报错 未能将文件...复制到... 未能找到文件...

FluentData 报错 Error:Could not map ...字段名