如何解决如何将内容不同但结构相同的JSON字符串转换为C#对象?
ı有一个Xamarin Forms项目。在该项目的一部分中,我需要以JSON字符串的形式从数据库中检索数据,但是该数据的根数,值和根名可能会发生变化。所有检索到的字符串都具有相同的结构,但是字符串中的所有信息都不同。
示例字符串:(最初是一行。)
{
"20Pr": {
"20Pr": {
"AA": "0:0:0","EE": "1:0:4","Comp": 0,"ASE": "0:0:0","PES": "1:0:0","PLD": "0:0:4","ASET": "0:0:0"
},"22Bp Cache": {
"AA": "0:0:0","EE": "1:0:1","ASE": "-","PLD": "0:0:1","ASET": "-"
},"21SSL Fail": {
"AA": "0:0:0","ASET": "-"
}
},"40godown": {
"43Sw & DB": {
"AA": "0:0:0","EE": "1:24","PES": "1:1:4","PLD": "0:0:1:0","40goown": {
"AA": "0:0:0","PES": "1:0:4","PLD": "0:2:0","ASET": "0:0:0"
}
}
}
只有AA,EE,Comp,ASE,PES,PLD,ASET是恒定的,但它们的值不是恒定的。
是否可以通过更改JSON字符串来创建C#对象,而无需获取有关名称的信息“ 40godown”?
解决方法
假设您定义了具有Thing
,AA
,...,EE
属性的类ASET
,则可以将该JSON反序列化为Dictionary<string,Dictionary<string,Thing>>
不会丢失信息。
var data = JsonConvert.DeserializeObject<Dictionary<string,Thing>>>(json);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。