以下是我從Web服務返回的JSON數據的示例。無法反序列化包含元數據和記錄的當前JSON數組
它具有「odata.metadata」的單個節點,「value」的另一個單節點,然後是由3個字段「Code」,「Name」和「XTag」組成的重複記錄。這是被稱爲內容
{"odata.metadata":"https://notthereal.domain:3148/system/OData/$metadata#pageLocationList","value":[{"Code":"LOC-A","Name":"Location A","XTag":"36;DgAAAAJ7/zEAMAAwAC0ATQBBAEkATgAAAAAA8;264943250;"},{"Code":"LOC-B","Name":"Location B","XTag":"36;DgAAAAJ7/zEAMAAxAC0ATQBBAEkATgAAAAAA8;388906690;"},{"Code":"LOC-C","Name":"Location C","XTag":"36;DgAAAAJ7/zEAMAAyAC0ATQBBAEkATgAAAAAA8;388844480;"},{"Code":"LOC-D","Name":"Location D","XTag":"36;DgAAAAJ7/zEAMAAzAC0ATQBBAEkATgAAAAAA8;388876720;"}]}
我已經在爲模型,我用JSON數據粘貼到類以下的字符串變量。
public class ModelPageLocationList
{
public string odatametadata { get; set; }
public List<Value> value { get; set; }
}
public class Value
{
public string Code { get; set; }
public string Name { get; set; }
public string XTag { get; set; }
}
,這是試圖deserialise它的代碼...
DataPageLocationList =
JsonConvert.DeserializeObject<List<ModelPageLocationList>>(content);
..和這樣的錯誤消息。我卡住了!有任何想法嗎?我認爲問題出現在開始時的2個單個記錄的周圍,然後是重複的數據。
ERROR Cannot deserialize the current JSON object (e.g. {"name":"value"}) into type 'System.Collections.Generic.List because the type requires a JSON array (e.g. [1,2,3]) to deserialize correctly.
這裏是我打電話
public async Task<List<ModelPageLocationList>> RefreshPageLocationListAsync()
{
DataPageLocationList = new List<ModelPageLocationList>();
var uri = new Uri(string.Format(WebServiceSettings.WebServiceUrl, string.Empty));
try
{
var response = await client.GetAsync(uri);
if (response.IsSuccessStatusCode)
{
var content = await response.Content.ReadAsStringAsync();
Debug.WriteLine("{0}", content.ToString());
DataPageLocationList = JsonConvert.DeserializeObject<List<ModelPageLocationList>>(content);
}
} catch (Exception ex)
{
Debug.WriteLine(@"ERROR {0}", ex.Message);
}
return (DataPageLocationList);
}
你可以分享你試圖反序列化的JSON嗎? –
這是帖子的第一行 –