带有重复标记的Json数组

cod*_*iac 1 c# json json-deserialization

我有以下json:

{
  "OBECT_TAG":
  [
    {
      "PROPERTY1" : "value1",
      "PROPERTY2" : "value2",
    },
    {
      "PROPERTY1" : "value1",
      "PROPERTY2" : "value2",
    },
    {
      "PROPERTY1" : "value1",
      "PROPERTY2" : "value2",
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我希望对OBJECT_TAG数组中的每个对象重复.我试过这个并且c#中的反序列化失败了.是json兼容还是什么使它符合规定?

{
  [
    "OBECT_TAG":
    {
      "PROPERTY1" : "value1",
      "PROPERTY2" : "value2",
    },
    "OBECT_TAG":
    {
      "PROPERTY1" : "value1",
      "PROPERTY2" : "value2",
    },
    "OBECT_TAG":
    {
      "PROPERTY1" : "value1",
      "PROPERTY2" : "value2",
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

如果有必要,这样做的原因是对象变得非常大,有很多级别,所以当手动编辑时,很容易识别每个主要对象的起始位置,同时保持数组和简单的c#对象反序列化.

编辑:保留根对象很重要

Evk*_*Evk 5

Json对象具有名称和值的属性,其中value可以是另一个object\array\primitive值.

Json数组包含没有名称的其他对象\ arrays\primitives.

你的问题中的Json违反了上述两个方面.

{
  [...]
}
Run Code Online (Sandbox Code Playgroud)

无效,因为没有属性名称.如果要将数组放入对象中,则必须将其命名为:

{
    "MyArray": [...]
}
Run Code Online (Sandbox Code Playgroud)

然后

[
    "OBECT_TAG":
    {
      "PROPERTY1" : "value1",
      "PROPERTY2" : "value2",
    }
]
Run Code Online (Sandbox Code Playgroud)

无效,因为数组只是未命名值的列表,并且您尝试命名其条目.

最接近你想要的是我能想到的是对象数组,其中每个对象包含带有标记的命名属性,并且该标记对象包含属性:

[
    { "OBECT_TAG":
      {
        "PROPERTY1" : "value1",
        "PROPERTY2" : "value2"
      }
    }
]
Run Code Online (Sandbox Code Playgroud)