Json.net自定义字典格式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Json.net自定义字典格式相关的知识,希望对你有一定的参考价值。

我正在编写一些类来调用我没有编写的API。 API编写得很奇怪,并且有一些看起来像这样的数据:

[
    {
        "AB": 20
    },

    {
        "CD": 15
    }
]

我知道一个典型的字典会像这样序列化:

{
    "AB": 20,
    "CD": 15
}

有什么我可以映射到匹配他们写的东西而不必编写一堆自定义代码?

答案

解析此类JSON并获取包含所有键/值的Dictionary的一种方法如下:

string json = @"
[
    {
        ""AB"": 20
    },

    {
        ""CD"": 15
    },

    {
        ""EF"": 35
    }
]";

JArray obj = JsonConvert.DeserializeObject<JArray>(json);
var dict = obj.ToList()
    .SelectMany(x => x.ToList())
    .Cast<JProperty>()
    .ToDictionary(x => x.Name, x => x.Value);

基本上,它会展平所有数组元素并从每个元素构造一个字典。

以上是关于Json.net自定义字典格式的主要内容,如果未能解决你的问题,请参考以下文章