我正在使用JSON.NET并且必须反序列化此结构。JSON反序列化“unhandy”字典
"NameValue": [
{
"Name": "CONO",
"Value": "001"
},
{
"Name": "DIVI",
"Value": " "
},
{
"Name": "LNCD",
"Value": "DE"
},
{
"Name": "CUNO",
"Value": "#AT-VORL "
},
]
这是一个较大的对象的一部分,我想反序列化到MyType
。我可以有一个属性NameValue,这是一个键入对象的列表MyNameValue
,它有两个属性Name
和Value
。但这只是一个字典的怪异表示(名字永远不会重叠),所以我想要一个.NET字典,它会更方便。
如何在我的类上使用属性来实现此目的?
什么样的作品是这样的:
private class JsonResponseRecord
{
public string RowIndex { get; set; }
[JsonProperty(PropertyName = "NameValue")]
public List<KeyValuePair<string, string>> Values { get; set; }
}
但它与所有的按键都null
而值是否正确填写KeyValuePairs的列表结束。我想他会要求JSON有"Key"
而不是"Name"
。
要明确:我想有一个Dictionary<string, string>
类型Values
属性一样的:
private class JsonResponseRecord
{
public string RowIndex { get; set; }
[JsonProperty(PropertyName = "NameValue")]
public Dictionary<string, string> Values { get; set; }
}
我想可能期望的“钥匙”,而不是“名”,但是这必须是相当容易,虽然克服了,最坏的情况下,你可以使用动态类型,以填补KeyValuePair或将它反序列化为一个具有正确名称的类,也可能是一个选项。 – Viezevingertjes