對於deserialising JSON對象,我不得不定義將包含一個或多個對象的爲子類陣列的父類。如果一個對象被檢索,它必須是一個對象,或者如果從json中檢索到一個數組,則它必須是一個對象數組。如何檢查變量是數組還是對象?
JSON陣列對象
{"y":{"x":[{"data":28}, {"data":56}, {"data":89}]}}
JSON對象
{"y":{"x":{"data":28}}}
Y在一次接收的x,而x []在另一時間。沒有這樣的條件來確定是否會收到一個數組或對象。
因此,用於確定是否我接收到的陣列或不,我檢查IsArray的()的條件。
我試圖
class Y
{
public X x { get { return System.IsArray() ? new X() : new x[] }; set; }
}
class X
{
public int data { get; set; }
}
- 它不是工作。
- System.IsArray()不被識別??
你有過生成的JSON邏輯控制?如果是這樣,您應該考慮重新設計數據對象以遵循標準合同。擁有一個屬性有時是一個單一的對象,有時是一個數組是一個糟糕的設計和長遠來看有問題。如果你有能力,你應該考慮把它作爲一個數組,並建立你的對象模型來解決這個問題。 – 2012-04-12 06:23:04
[IsArray](http://msdn.microsoft.com/zh-cn/library/system.type.isarray.aspx)檢查「Type」。你應該檢查你感興趣的對象而不是'System'。 – Default 2012-04-12 06:23:33