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'。 –