【问题标题】:JSON to a JSON array Cannot deserialize the current JSON object in MVC5JSON 到 JSON 数组无法反序列化 MVC5 中的当前 JSON 对象
【发布时间】: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


【解决方案1】:

似乎您正在传递一个简单的 JSON 对象,而您的数据类型需要一个 JSON 对象数组。

尝试将您当前的 JSON 数据封装在“[”和“]”之间

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-12
    • 2017-03-16
    • 2020-06-12
    • 1970-01-01
    相关资源
    最近更新 更多