C#怎么判断一个json对象中存在某个键

 我来答
Koftt1123
2016-02-06 · 超过10用户采纳过TA的回答
知道答主
回答量:17
采纳率:100%
帮助的人:8.3万
展开全部
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对象的话,
直接定义好类型,进行自动的模型绑定,是不是会更好一些。

当然,这些是题外话,毕竟不知道你具体的使用情况,希望能给你帮助吧。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式