首页 新闻 会员 周边

C#对json数据的解析

0
悬赏园豆:10 [已解决问题] 解决于 2016-07-12 21:11

{"count":2, "data":[{"OTW5120055120400001":"index=1\time=2016-01-13 14:17:23\tpin=9342156\tcardno=9342156\teventaddr=1\tevent=0\tinoutstatus=0\tverifytype=4"},{"OTW5120055120400001":"index=12\ttime=2016-01-13 14:17:54\tpin=4273236\tcardno=4273236\teventaddr=1\tevent=2\tinoutstatus=0\tverifytype=4 "}]}

data后面的是数组,数组的组成是键值对,键是根绝请求返回不确定的,求大神指教不按字符串的方式怎么解析这个json数据。

Simen.Net的主页 Simen.Net | 初学一级 | 园豆:127
提问于:2016-07-06 11:50
< >
分享
最佳答案
1

var x = JsonConvert.DeserializeObject<JObject>(str);

var mJObj = JArray.Parse(x["data"].ToString());

foreach (var ss in mJObj ) //查找某个字段与值
{
Dictionary<string,string> dic = JsonConvert.DeserializeObject<Dictionary<string, string>>(ss.ToString());
foreach (KeyValuePair<string, string> temp in dic)
{
System.Diagnostics.Debug.WriteLine(string.Format("key:{0} value:{1}",temp.Key,temp.Value));
}
}

 

结果:


key:OTW5120055120400001 value:index=1 ime=2016-01-13 14:17:23 pin=9342156 cardno=9342156 eventaddr=1 event=0 inoutstatus=0 verifytype=4


key:OTW5120055120400001 value:index=12 time=2016-01-13 14:17:54 pin=4273236 cardno=4273236 eventaddr=1 event=2 inoutstatus=0 verifytype=4

收获园豆:10
金钱 | 初学一级 |园豆:136 | 2016-07-06 12:33

更加精简一点

var x = JsonConvert.DeserializeObject<JObject>(str);
(x["data"]).Values().ToList().ForEach(u => System.Diagnostics.Debug.WriteLine(((JProperty)u).Value));

 

 

 

金钱 | 园豆:136 (初学一级) | 2016-07-06 13:01

@金钱: 知道这种方法,只不过我取到他的value之后还得进行字符串操作,然后给对象的每个属性赋值。

Simen.Net | 园豆:127 (初学一级) | 2016-07-07 11:51

thanks,受教了。

Simen.Net | 园豆:127 (初学一级) | 2016-07-07 11:52
其他回答(3)
0

那就反序列化成键值对

吴瑞祥 | 园豆:29449 (高人七级) | 2016-07-06 12:03

 譬如?

 

支持(0) 反对(0) Simen.Net | 园豆:127 (初学一级) | 2016-07-06 12:28
0

如果是json数据反序列化的应该需要提供提供对象来接收反序列化,你的意思是不确定对象属性,所以没办法使用反序列化吗?object类型呢?

哪个昵称没被用 | 园豆:5 (初学一级) | 2016-07-06 21:53

c#自带的对json数据进行序列化和反序列化是转换成对象进行操作的,对象就是属性然后值。我那个json数据对应的那个前面的key是变化的也就是属性的名称是变化的,和object没关系,按照上面那哥们给的方式我通过第三方Newtonsoft.Json这个程序集取键值对然后操作。

支持(0) 反对(0) Simen.Net | 园豆:127 (初学一级) | 2016-07-07 11:49
0

随便找个JSON在线的解析工具,你就能得到你想要的结果了

哟,嘟嘟有糖☄⊙ω⊙ | 园豆:9 (初学一级) | 2016-07-07 11:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册