0
私はAPI restで作業しています.Json、Object、およびArrayの2種類のAPIを返します。1つのオブジェクトをリストに割り当てる方法は?
オブジェクト(データベース内の1つのレコードのみが存在する場合):
{ "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" } ] }
私が使用コード:
{ "complain": { "id": "1" , "description": "hello", "date": "2017-01-24 11:46:22", "Lat": "20.5204446", "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);
}
リストビューに追加できる場合、
myList.ItemsSource = jsonArray.listArray;
しかし、それは私ができないオブジェクトであり、私は次のエラーを取得する場合:
Cannot implicitly convert type Object to IEnumerable.
その時点で 'list'は' RootObject'であるためであるリスト/配列/コレクションにそのオブジェクトを追加していることを割り当てますあなたの 'ItemSource'へのコレクション – SushiHangover
あなたはAPIを支配していますか?あなたがするなら、同じエンドポイントから2つの異なるオブジェクトを返さないことをお勧めします。データベースにレコードが1つしかない場合でも、常に配列を返します。あなたがこれらのチェックをしなくてはなりません。 –
あなたの投稿は観測です。質問はなんですか? :-)単一のオブジェクトをリストに割り当てる方法は?それを動作させるためにJsonを変更するには? RESTfulなAPIを変更して別のものを返す方法あるいは、なぜそれは機能しないのですか? – Krumelur