【发布时间】:2020-01-02 15:04:42
【问题描述】:
我正在使用 .NET 4.7、C#、JSON.NET、MVC 5
我有一些输入 JSON:
[
{
"id" : 1
},
{
"id" : 2
},
{
"id" : 3
}
]
这是由第 3 方 API 提供的
通常我会使用诸如反序列化之类的代码:
var content = await response.Content.ReadAsStringAsync();
JObject json = JObject.Parse(content);
orderList = JsonConvert.DeserializeObject<OrderList>(json.ToString());
但是我发现:
JObject json = JObject.Parse(content);
使用有问题的 JSON 崩溃。我强烈怀疑周围的“[”和“]”是原因。
我通常会添加:
{
items: [
更正输入的 JSON。
有没有更好的方法来反序列化它,因为这个输入 JSON 似乎不完整,尽管当我测试它时,它似乎是有效的 JSON。
也许我应该使用 JArray 而不是 JObject?
提前致谢。
【问题讨论】:
-
Normally I would use code such as, to deserialize: var content = await response.Content.ReadAsStringAsync(); JObject json = JObject.Parse(content); orderList = JsonConvert.DeserializeObject<OrderList>(json.ToString());呵呵这是多余的......为什么不var content = await response.Content.ReadAsStringAsync(); orderList = JsonConvert.DeserializeObject<OrderList>(content); -
您的 JSON 无效。
-
@Mahdis 我认为缺少逗号只是问题中的拼写错误
-
@Selvin,可能是的,但无论如何他都需要修复它。
-
要么反序列化到一个具体类的列表(最好的方法),要么改用
JArray.Parse。