我有这样的json响应:
{
"val1":{
"id":"1",
"value":"val"
},
"val2":{
"id":"2",
"value":"otherVal"
}
}
我如何将此有效负载反序列化为SimplyObject所在的SimplyObject的通用列表
public class SimpleObject {
public int Id {get;set;}
public string Value {get;set;}
}
当我尝试将此有效负载反序列化为SimpleObject列表时,出现以下错误:
无法反序列化当前JSON对象(例如{“ name”:“ value”}) 变成'System.Collections.Generic.List`1 [SimpleObject]'类型,因为 该类型需要JSON数组(例如[1,2,3])进行反序列化 正确地。要解决此错误,请将JSON更改为JSON数组 (例如[1,2,3])或更改反序列化类型,使其成为常规 .NET类型(例如,不是整数之类的原始类型,不是集合 可以从JSON反序列化的类型(如数组或列表) 宾语。也可以将JsonObjectAttribute添加到类型中以强制它 从JSON对象反序列化。
答案 0 :(得分:3)
您可以使用Dictionary
反序列化JSON,例如:
var result = JsonConvert.DeserializeObject<Dictionary<string, SimpleObject>>(json);
并像这样使用它:
foreach (var item in result)
{
Console.WriteLine($"Item: {item.Key} has Id of {item.Value.Id} and value of {item.Value.Value}");
}