key值不确定json串的解析 C#

key值不确定json串的解析 C#

最近碰到一个解析key不确定的json的需求,http协议传过来的直接是一个大json,里面有若干个字段的key值都是可变的,无法直接使用定义对象的方式进行解析,协议是第三方厂家给的,没办法,只能硬着头皮解,搞了一晚上终于搞懂了,其实并不难,以往解常规json是直接用jsonconvert.deseraialobject<泛型对象>(jsonstring)就能直接出想要的对象,如果碰到key不确定这种,用Dictionary<string,classXXX>代替原来的泛型对象,在string里存的是不确定的key值,classXXX这个类用来存这个key对应的value,如果这个不确定的key在json内层的话,就先用JObject.Parse(data_jsonObj[“外层key”].ToString())这种方式获得内层的不确定key,这种情况其实最重要的是对协议内容的理解,json串很大的时候不一定所有东西都用得上,搞懂自己需要哪些信息。不要做太多无用功。
话不多说,直接上代码。
“devices_info”: {
“777777”: {
“frequency”: 5.8,
“gps”: {
“lat”: 49.2398488173378,
“lng”: -122.65134998807083
},
tatus": “decrypting”,
“switch_for_whitelist”: true,
“type”: “drone”
},
“666666”:{
“frequency”: 5.8,
“gps”: {
“lat”: 49.2398488173378,
“lng”: -122.65134998807083
},
tatus": “decrypting”,
“switch_for_whitelist”: true,
“type”: “drone”
}
}

var targetInfovar = Newtonsoft.Json.JsonConvert.DeserializeObject<System.Collections.Generic.Dictionary<string, TargetInfo>>(targets_json);//TargetInfo为目标类,运行后dictionary里有两个keyvalue对,遍历他们取value即可在key不确定时获取每一个目标的详细信息。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值