下面,我有一个JSON,其中详述了一系列对象,每个对象都有一个values
属性。
此values
属性也是一个对象,但是每个values
对象可以包含任意数量的字符串:
{
"data": [
{
"name": "xxxx",
"values": {
"one": "xxxx",
"two": false
}
},
{
"name": "xxyy",
"values": {
"three": "xxyy",
"four": 1.25,
"five": "xxyy"
}
},
{
"name": "xxyy",
"values": {
"six": "xxyy",
"seven": "xxyyy",
"eight": "xxyy",
"nine": 1234,
"ten": 0
}
}
]
}
是否有一种方法可以反序列化此JSON对象,以便无论该values
对象具有多少个属性,都可以填充values
对象?
我正在使用C#
和Newtonsoft.Json
反序列化。
答案 0 :(得分:2)
以下两个对象可用于正确反序列化JSON:
public class AllData
{
public Item[] Data { get; set; }
}
public class Item
{
public string Name { get; set; }
public IDictionary<string, object> Values { get; set; }
}
然后可以使用以下几行实际进行反序列化:
string json = /*json*/;
AllData data = JsonConvert.DeserializeObject<AllData>(json);