【发布时间】:2017-07-06 03:03:56
【问题描述】:
我有 JSON 字符串: // 覆盖率值是一个数组。
string jsonData = @"{
""plans"":
[
{
""plan_code"":""UL500"",
""plan_name"":""Unlimited 500M"",
""days"":1,
""limit"":500,
""coverage"":
[
{
""country"":""SE"",
},
{
""country"":""BZ""
}
]
},
{
""plan_code"":""UL1GB"",
""plan_name"":""Unlimited 1GB"",
""days"":1,
""limit"":1024,
""coverage"":
[
{
""country"":""SG"",
},
{
""country"":""JP""
}
]
}
]
}
";
我被 JsonConvert.DeserializeObject 解析为下面的示例代码:
try
{
var content = new StringContent(jsonData, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync("", content);
var result = await response.Content.ReadAsStringAsync();
var tempRecords = JsonConvert.DeserializeObject<List<plan>>(result);
}
然后我收到一条错误消息: “无法将当前 JSON 对象(例如 {\"name\":\"value\"})反序列化为类型 'System.Collections.Generic.List`1[DAL.plan]',因为该类型需要 JSON 数组(例如[1,2,3]) 以正确反序列化。\r\n要修复此错误,请将 JSON 更改为 JSON 数组(例如 [1,2,3])或更改反序列化类型,使其成为普通的 .NET可以从 JSON 对象反序列化的类型(例如,不是像整数这样的原始类型,不是像数组或列表这样的集合类型)。也可以将 JsonObjectAttribute 添加到该类型以强制它从 JSON 对象反序列化。\r\ nPath 'plans',第 1 行,第 9 位。”
请告诉我解决这个问题的正确方法。
【问题讨论】:
标签: c# arrays json deserialization