我正在尝试反序列化 JSON 中的键值对列表。我已经看到其他建议反序列化为字典的答案,但这不起作用,因为我有重复的键。我可以反序列化为字典列表,但这似乎很愚蠢,因为每个字典都只是一个键/值对。这也使访问这些键和值变得复杂。
这是一个类的属性,也是一个更大的 JSON 对象的一部分,因此任何需要单独反序列化此 JSON 块
的解决方案都不适合我。我已经看到使用 Json.NET 反序列化键值对数组。这是一个可能的解决方案,但是虽然我并不反对在必要时编写自定义反序列化程序,但如果可能的话,我更愿意使用现有的东西。
下面是我的数据示例:
[{"Parcel": "Parcel_ID"}, {"Parcel": "LegalAddress"}, {"Fee": "Amount"}]
我尝试过的事情:
IEumerable<KeyValuePair<string, string>>
不起作用,键和值均为空。
IEnumerable<Tuple<string, string>>
不起作用,很尴尬。
IEnumerable<IDictionary<string, string>>
有效,但由于需要做FirstOrDefault().(Key|Value)
而很难使用。
如果你的项目中多次有这种结构,最好的办法是使用 Newtonsoft 创建自己的转换器,如本文所述。