【发布时间】:2016-01-27 22:13:14
【问题描述】:
我有以下代码从 Json 对象中获取数据
System.Console.WriteLine("Error Create Order: {0} {1}", postOrderResult.StatusCode, postOrderResult.ReasonPhrase);
var orderResults = postOrderResult.Content.ReadAsAsync<List<OrderResult>>().Result;
但它的返回错误
无法将当前 JSON 对象(例如 {"name":"value"})反序列化为类型 'System.Collections.Generic.List`1[ABCS.WebApi.Models.OrderResult]' 因为该类型需要 JSON 数组(例如 [1,2,3])正确反序列化。 要修复此错误,要么将 JSON 更改为 JSON 数组(例如 [1,2,3]),要么将反序列化类型更改为普通的 .NET 类型(例如,不是像整数这样的原始类型,而不是像这样的集合类型可以从 JSON 对象反序列化的数组或列表。 JsonObjectAttribute 也可以添加到类型中以强制它从 JSON 对象反序列化。 路径“消息”,第 1 行,位置 11。
请帮忙
【问题讨论】:
-
你想反序列化什么?你的 JSON 对象是什么?
OrderResult是什么?请提供更多信息。异常信息和一行代码是不够的。 -
@YeldarKurmangaliyev 我从 WEBAPI 得到 Json 响应,而 postOrderResult 是我尝试反序列化到 OrderResult 模型中的 JsonData
-
@YeldarKurmangaliyev 我现在尝试了类似的方法,但返回相同的错误 var jsonString = postOrderResult.Content.ReadAsStringAsync(); jsonString.Wait(); orderResults = JsonConvert.DeserializeObject
- >(jsonString.Result);
-
@YeldarKurmangaliyev 另一个尝试是 List
orderResults = (List )Newtonsoft.Json.JsonConvert.DeserializeObject(jsonString.Result, typeof(List ));
标签: json asp.net-mvc visual-studio-2013 asp.net-mvc-5