使用JSON.NET反序列化为IEnumerable <keyvaluepair>

时间:2017-03-22 14:41:51

标签: c# json json.net

我正在尝试反序列化JSON中的键值对列表。我已经看到了其他建议反序列化到字典中的答案,但这不起作用,因为我有重复的键。我可以反序列化为一个字典列表,但这看起来很愚蠢,因为每个字典只有一个键/值对。这也使得访问这些键和值变得复杂。

这是一个类的属性,是一个更大的JSON对象的一部分,所以任何需要单独反序列化这个JSON块的解决方案对我来说都不适用。

我见过Deserialize array of key value pairs using Json.NET。这是一个可能的解决方案,但是如果必须的话,我不反对编写自定义反序列化器,如果可能的话,我宁愿使用现有的东西。

以下是我的数据示例:

[{"Parcel": "Parcel_ID"}, {"Parcel": "LegalAddress"}, {"Fee": "Amount"}]

我尝试过的事情:

IEumerable<KeyValuePair<string, string>>不起作用,key和value都为null。

IEnumerable<Tuple<string, string>>不起作用并且很尴尬。

IEnumerable<IDictionary<string, string>>有效,但由于需要FirstOrDefault().(Key|Value)而无法使用。

1 个答案:

答案 0 :(得分:-1)

如果您在项目中多次使用此类结构,最好使用Newtonsoft创建自己的转换器,如Post中所述。