JSON.Net JObject.Parse删除对象

时间:2016-06-18 12:19:34

标签: json json.net

我试图将JSON字符串解析为JObject,但不知怎的,它只解析数组的第一个对象。

这是JSON字符串的一部分

        {
          "Categories": [
            {
              "Category": [
                {
                  "ID": "1",
                  "Description": "Kochen/Backen",
                  "IsActive": "True"
                }
              ],
              "Category":[
                {
                  "ID": "2",
                  "Description": "Sport",
                  "IsActive": "True"
                }
              ],
              "Category": [
                {
                  "ID": "3",
                  "Description": "Begleitung 2",
                  "IsActive": "True"
                }
              ]
            }
          ],

在JObject.Parse之后,我可以看到它被加载了:

        {
          "Categories": [
            {
              "Category": [
                {
                  "ID": "3",
                  "Description": "Begleitung 2",
                  "IsActive": "True"
                }
              ]
            }
          ],

那么为什么前两个类别没有被解析? 我不是JSON的专业人士,所以我不知道字符串是否正确。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

您的JObject无法保留重复的密钥。父列表中的字典具有多个具有相同键Category

的条目
{
  "Category": [
    {
      "ID": "1",
      "Description": "Kochen/Backen",
      "IsActive": "True"
    }
  ],
  "Category":[
    {
      "ID": "2",
      "Description": "Sport",
      "IsActive": "True"
    }
  ],
  "Category": [ 
    {
      "ID": "3",
      "Description": "Begleitung 2",
      "IsActive": "True"
    }
  ]
}

因此解析后会覆盖其他键,并且id为3的最后一项成为最终值。考虑将密钥重组为Category1Category2Category3