【发布时间】:2019-05-12 07:10:39
【问题描述】:
尝试反序列化从 API 返回的 JSON。响应格式如下:
{
"items":[
{
"candidateId":40419,
"firstName":"Adelaida",
"lastName":"Banks",
}
....
]
}
我使用HttpClient如下调用API:
List<Candidate> model1 = null;
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "00000");
HttpResponseMessage response = await client.GetAsync(MyURL);
response.EnsureSuccessStatusCode();
var responseBody = await response.Content.ReadAsStringAsync();
model1 = JsonConvert.DeserializeObject<List<Candidate>>(responseBody);
而Class Candidate的定义如下:
public class Candidate
{
public string candidateId { get; set; }
public string firstName { get; set; }
public string lastName { get; set; }
public string email { get; set; }
public int phone { get; set; }
public int mobile { get; set; }
}
但我得到了例外:
无法将当前 JSON 对象(例如 {"name":"value"})反序列化为类型 'System.Collections.Generic.List`1[AirCall.Controllers.Candidate]',因为该类型需要 JSON 数组(例如[1,2,3]) 正确反序列化。
想知道是不是因为响应中的元素列表在“Items”元素中?有什么想法吗?
【问题讨论】:
标签: c# json asp.net-core dotnet-httpclient