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#对象反序列化.
编辑:保留根对象很重要
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)