C# 如何使用可变数量的字符串反序列化JSON对象?
下面我有一个JSON,它详细描述了一个对象数组,每个对象都有一个C# 如何使用可变数量的字符串反序列化JSON对象?,c#,json,deserialization,C#,Json,Deserialization,下面我有一个JSON,它详细描述了一个对象数组,每个对象都有一个value属性 此values属性也是一个对象,但每个values对象可以包含任意数量的字符串: { "data": [ { "name": "xxxx", "values": { "one": "xxxx", "two": false } },
value
属性
此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对象,这样我就可以填充一个值对象,而不管这个值对象有多少属性
我正在使用C#
和Newtonsoft.Json
对其进行反序列化。以下两个对象可用于正确反序列化Json:
public class AllData
{
public Item[] Data { get; set; }
}
public class Item
{
public string Name { get; set; }
public IDictionary<string, object> Values { get; set; }
}
公共类所有数据
{
公共项[]数据{get;set;}
}
公共类项目
{
公共字符串名称{get;set;}
公共IDictionary值{get;set;}
}
然后可以使用以下行实际执行反序列化:
string json = /*json*/;
AllData data = JsonConvert.DeserializeObject<AllData>(json);
string json=/*json*/;
AllData data=JsonConvert.DeserializeObject(json);
您使用哪种语言进行反序列化?该语言是否为强类型?它(比如C#,它有dynamic
,或者Newtonsoft的JObject
)有一些类型可以用来处理通常的强类型吗?FWIW对于“值”项来说,这似乎不是一个很好的结构……如果项的数量不确定,作为一个数组会更好,尤其是因为他们似乎被编号了。您可以控制JSON的创建吗?很抱歉。我的问题中包含了一个语言标签,我无法控制JSON的创建。我只是在使用它。正如我所提到的(或者你可能会使用字典)……但在我看来,它比以数组形式交付要笨重得多,看起来可能更合适。