【发布时间】:2020-06-22 08:12:30
【问题描述】:
我在哪里缺少信息?我需要反序列化以下 JSON 字符串。
{
"data": [
{
"FirstName": "Test",
"LastName": "Test"
}
]
}
为此,我定义了我的 LoadData 操作方法:
public async Task<ActionResult> LoadData()
{
string apiUrl = "URL";
using (HttpClient client = new HttpClient())
{
client.BaseAddress = new Uri(apiUrl);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
var input = new { depot = "DATA", fromDate = "2020-06-06", toDate = "2020-06-06" };
var response1 = await client.PostAsJsonAsync("DATAOne", input);
if (response1.IsSuccessStatusCode)
{
var data = await response1.Content.ReadAsStringAsync();
var table = JsonConvert.DeserializeObject<List<PartOne>>(data);
}
}
return View();
}
为此,我定义了我的类:
public class PartOne
{
public string FirstName{ get; set; }
public string LastName{ get; set; }
}
但是当我尝试使用反序列化器时,它给出了一个异常。
{"无法将当前 JSON 对象(例如 {"name":"value"})反序列化为类型 'System.Collections.Generic.List`1[InfluxDB.Serie]' 因为该类型需要 JSON 数组(例如[1,2,3]) 以正确反序列化。\r\n要修复此错误,请将 JSON 更改为 JSON 数组(例如 [1,2,3])或更改反序列化类型,使其成为普通的 .NET可以从 JSON 对象反序列化的类型(例如,不是像整数这样的原始类型,不是像数组或列表这样的集合类型)。也可以将 JsonObjectAttribute 添加到该类型以强制它从 JSON 对象反序列化。\r\ nPath '结果',第 2 行,第 12 位。"}
【问题讨论】:
标签: c# asp.net-mvc json-deserialization