0
我正在使用API休息,它返回兩種類型的json,對象和數組。如何將單個對象分配給列表?
對象(當僅存在一個數據庫中的記錄):
{ "complain": { "id": "1" , "description": "hello", "date": "2017-01-24 11:46:22", "Lat": "20.5204446", "Long": "-100.8249097" } }
陣列(當存在於數據庫中的多個記錄):
{ "complain": [ { "id": "1" , "description": "hello", "date": "2017-01-24 11:46:22", "Lat": "20.587446", "Long": "-100.8246490" }, { "id": "2" , "description": "hello 2", "date": "2017-01-24 11:50:12", "Lat": "20.529876", "Long": "-100.8249097" } ] }
我使用的代碼消耗JSON如下:
content = await response.Content.ReadAsStringAsync();
var token = JToken.Parse(content);
if (token["complain"] is JArray)
{
var jsonArray = JsonConvert.DeserializeObject<RootArray>(content);
}
else if (token["complain"] is JObject)
{
var jsonObject = JsonConvert.DeserializeObject<RootObject>(content);
}
當涉及到一個JSON數組,如果我可以將其添加到列表視圖:
myList.ItemsSource = jsonArray.listArray;
但是,如果它是一個對象,我不能,我收到以下錯誤:
Cannot implicitly convert type Object to IEnumerable.
這是因爲'list'在這一點上是一個'RootObject',這個對象添加到列表/數組/集合,然後分配一個收集到你的'ItemSource' – SushiHangover
你有任何控制的API?如果你這樣做,我會建議你不要從同一個終點返回兩個不同的對象。它應該總是返回一個數組,即使數據庫中只有一條記錄。它應該阻止你不必做這些檢查。 –
您的帖子是一個觀察。問題是什麼? :-)如何將單個對象分配給列表?如何更改Json使其工作?如何更改RESTful API以返回不同的內容?或者只是:爲什麼它不起作用? – Krumelur