以下是我从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吗? –
这是帖子的第一行 –