首页 > 解决方案 > 名称中带有点的可变数量的 JSON 属性

问题描述

我从网上遇到了一些特殊格式的 JSON 语法。基本上,我们得到名称中带有点的可变数量的属性。以下是两个明显的案例:

case 1:

"data" {
    "SET.Key.count":"0",
    "SET.Value.count":"0",
    ...
}

case 2:

"data" {
    "SET.Key.0":"Key 1",
    "SET.Key.1":"Key 2",
    "SET.Key.2":"Key 3",
    "SET.Key.3":"Key 4",
    "SET.Key.count":"4",
    "SET.Value.0":"10",
    "SET.Value.1":"20",
    "SET.Value.2":"30",
    "SET.Value.3":"40",
    "SET.Value.count":"4",
    ...
}

其中计数 4 是任意数字。它们可以是任何东西,但键数和值数应该相同。“...” 表示更多属性,但在这篇文章中可以忽略它们。

我使用 Newtonsoft.Json 和 C# 反序列化 JSON 流。但我不必和 Newtonsoft.Json 呆在一起。如何将其反序列化为对象列表(键和值)。任何处理这种 JSON 属性的建议将不胜感激。

标签: c#jsondeserialization

解决方案


利用JsonPropertyAttribute

 [JsonProperty(PropertyName = "user.isSystem")]
 public int IsSystem { get; set; }

 [JsonProperty(PropertyName = "0")]
 public int ZeroField{ get; set; }

推荐阅读