0
我有这样的JSON结构:Newtonsoft JSON - 不同的JSON结构,对象VS阵列
[
{
"key1": "value",
"key2": "value",
"key3": "TYPE_ONE",
"extraData": {
"key4": "value",
"key5": "value",
"key6": {
"key7": {
"key8": "value",
"key9": "value",
"key10": "value"
}
}
}
},
{
"key1": "value",
"key2": "value",
"key3": "TYPE_TWO",
"extraData": {
"key4": "value",
"key5": "value",
"key6": {
"key7": [
{
"key8": "value",
"key9": "value",
"key10": "value"
},
{
"key8": "value1",
"key9": "value1",
"key10": "value1"
},
{
"key8": "value2",
"key9": "value2",
"key10": "value2"
}
]
}
}
}
]
我想在C#
与using Newtonsoft.Json;
到反序列化。 JSON有两种结构。
1. CASE - >当“key3”:“TYPE_ONE”时,则key7是对象。
2. CASE - >当“key3”:“TYPE_TWO”时,则key7为数组。
如果在课堂上
public class key6
{
public key7 key7Item { get; set; }
}
key7Item设置为对象的工作只有当我得到的所有对象从反应是 “KEY3”: “TYPE_ONE”
如果我设置key7Item为列表然后才工作,如果来自响应的所有项目是“key3”:“TYPE_TWO”。
我可以配置Newtonsoft分析器来解析数组,如果它有数组或对象,如果它有对象?
如果您有需要两个JSON结构两个班代表他们。否则,无论使用'key3'如何使用相同的结构,只需使用数组中的单个项目即可。 –
@CamiloTerevinto如何告诉解析器将key7 allways解析为数组,即使作为对象返回? 或者,在其他情况下,如何告诉解析器根据key3使用不同的类? – zonelsk
是的,您可以使用'SingleOrArrayConverter'如[如何使用JSON.net处理同一个属性的单个项目和阵列](https://stackoverflow.com/q/18994685/10263)中所示。使用'key7'作为'T'而不是'string'。 –