C#怎么判断一个json对象中存在某个键
1个回答
展开全部
1.建议用Json.NET
有nuget包的话,直接搜索Json.NET下载;
没有的话,需要上网找一下 Newtonsoft.Json 的dll;
地址:http://www.newtonsoft.com/json
string str = "{'name':'koftt',age:28 }";
JObject jsonObj = JObject.Parse(str);
var result = jsonObj["name"];
若存在name属性 result为值
若不存在name属性 result为null
若存在属性,不存在值,result为空对象;
(当然,这里只是我偷懒的写法,应该有更合适的方法去做)
2.其次引用JsonHelper类
这个是之前比较通用的做法。
之前有个项目用的JsonHelper还是扩展的比较大的,比较像这个:
http://www.cnblogs.com/zcttxs/archive/2012/08/21/2649305.html
(这个格式可能乱了,需要梳理一下,但是,函数类型比较像我们当时扩展的)
转成字典类型进行判断
3.最次用string.Contains()
这个方法不靠谱啊,要知道,万一有个name1的属性,你查name属性,很有可能查到;
最后,我想多废话几句自己的一些见解:
C# JAVA属于强类型语言。当然,C#现在支持动态类型、弱类型。
但是,在不必要使用弱类型的时候,给一个明确的类型去绑定对象,会省去很多麻烦。
并且,使用反射,必然会浪费一定的性能。
如果题主是外部传递过来的一个JSON对象的话,
直接定义好类型,进行自动的模型绑定,是不是会更好一些。
当然,这些是题外话,毕竟不知道你具体的使用情况,希望能给你帮助吧。
有nuget包的话,直接搜索Json.NET下载;
没有的话,需要上网找一下 Newtonsoft.Json 的dll;
地址:http://www.newtonsoft.com/json
string str = "{'name':'koftt',age:28 }";
JObject jsonObj = JObject.Parse(str);
var result = jsonObj["name"];
若存在name属性 result为值
若不存在name属性 result为null
若存在属性,不存在值,result为空对象;
(当然,这里只是我偷懒的写法,应该有更合适的方法去做)
2.其次引用JsonHelper类
这个是之前比较通用的做法。
之前有个项目用的JsonHelper还是扩展的比较大的,比较像这个:
http://www.cnblogs.com/zcttxs/archive/2012/08/21/2649305.html
(这个格式可能乱了,需要梳理一下,但是,函数类型比较像我们当时扩展的)
转成字典类型进行判断
3.最次用string.Contains()
这个方法不靠谱啊,要知道,万一有个name1的属性,你查name属性,很有可能查到;
最后,我想多废话几句自己的一些见解:
C# JAVA属于强类型语言。当然,C#现在支持动态类型、弱类型。
但是,在不必要使用弱类型的时候,给一个明确的类型去绑定对象,会省去很多麻烦。
并且,使用反射,必然会浪费一定的性能。
如果题主是外部传递过来的一个JSON对象的话,
直接定义好类型,进行自动的模型绑定,是不是会更好一些。
当然,这些是题外话,毕竟不知道你具体的使用情况,希望能给你帮助吧。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询