我使用返回JSON的API。我在訪問元素時遇到問題,因爲它們不在數組中。JSON數組中的訪問元素
我的JSON是這樣的:
在2的JSON,我可以
[email protected]@
但是訪問的元素,當我使用的1 JSON,我得到以下例外:
Additional information: Newtonsoft.Json.Linq.JProperty does not contain a definition for Traject
我使用返回JSON的API。我在訪問元素時遇到問題,因爲它們不在數組中。JSON數組中的訪問元素
我的JSON是這樣的:
在2的JSON,我可以
[email protected]@
但是訪問的元素,當我使用的1 JSON,我得到以下例外:
Additional information: Newtonsoft.Json.Linq.JProperty does not contain a definition for Traject
該圖片上的兩個JSON是n在架構上類似。第一個有一個嵌套的「存儲」對象,它有幾個屬性,但在第二種情況下,「存儲」成爲一個對象數組。您嘗試映射的對象模型是否有可能嘗試將此數組解析爲單個對象?
如果是這樣,那麼我認爲您需要將模型中「存儲」類型更改爲數組。你將能夠獲得的元素則是這樣的: dataJson.Storingen.Ongepland.Storing[0][email protected]@
我完全錯過了,好點! – Idiot211
我知道這是一個古老的職位,但我想也許我可以分享在這個問題上1號,我相信我的想法,只是從以防有人未來看到這一點。
1st。創建兩個類如下:
public Storing Test {get; set;}
public class Storing
{
public string id {set; get;}
public string Traject {set; get;}
public string Periode {set; get;}
}
2nd。在主程序中,反序列化JSON並調用對象,因此
TestCase list = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<TestCase>(*your web API uri*);
Console.WriteLine ("id:{0}, Traject{1}, Periode{2}", list.Id, list.Traject, list.Periode);
第二個json的結構與第一個不同。 在第二種情況下,您應該使用dataJson.Storingen.Ongepland.Storing[0][email protected]
來訪問您想要的屬性。
但是,如果你希望你的數組中捲起,只是使用for
再次檢查您的JSON,看來第二個條目實際上是嵌套在第一個條目中,因此它爲什麼無法訪問。 (除非我瘋了) - 也不應該是dataJson.Storingen.Gepland.Storing。@ elementName @? - '隨時發佈pastebin上的原始JSON,我會看看它。' – Idiot211
我犯了錯誤。 2號作品,但1不,但我仍然不知道如何修復它 這是我無法訪問元素的JSON:http://pastebin.com/NsL2txnx 這是一個它的作品http://pastebin.com/eFc1JUWv – user2274356
請參閱[「應該問題包括」標籤「在他們的標題?」](http://meta.stackexchange.com/questions/19190/should-questions-include-標籤在他們的標題),其中共識是「不,他們不應該」! –