2
我已經創建了一個類來解析JSON響應。我遇到的麻煩是一個項目有時是一個數組,而另一個項目是一個對象。我試圖想出一個解決方法,但總是給我一些其他問題。確定數組或對象
我想要某種if或try語句來讓我確定創建的內容。
僞...
[DataContract]
public class Devices
{
if(isArray){
[DataMember(Name = "device")]
public Device [] devicesArray { get; set; }}
else{
[DataMember(Name = "device")]
public Device devicesObject { get; set; }}
}
使用丹的代碼,我想出了以下解決方案,但現在當我嘗試使用它,我有一個鑄造的問題。 「無法轉換類型‘System.Object的’的對象爲類型‘MItoJSON.Device’」
[DataContract]
public class Devices
{
public object target;
[DataMember(Name = "device")]
public object Target
{
get { return this.target; }
set
{
this.target = value;
var array = this.target as Array;
this.TargetValues = array ?? new[] { this.target };
}
}
public Array TargetValues { get; private set; }
}
只要將其模型作爲陣列 - 爲一個單一的項目將是一個項目的數組。 – Oded 2012-08-03 19:23:49
這就是我最初做的,但它失敗了。如果只有一個項目,數組的長度始終爲零。如果我將它創建爲一個對象,那麼它將適用於單個項目。 – MCR 2012-08-03 19:29:25
我嚴重懷疑數組的長度爲零,如果你傳遞和數組與一個項目。 – Paparazzi 2012-08-03 20:12:41