【发布时间】:2019-02-18 02:48:17
【问题描述】:
我尝试使用 JsonConvert 库序列化 JSON,但出现错误:
JsonSerializationException: 无法将当前 JSON 数组(例如 [1,2,3])反序列化为类型 'APIConsume.Models.RootObject',因为该类型需要 JSON 对象(例如 {"name":"value"})正确反序列化。 要修复此错误,请将 JSON 更改为 JSON 对象(例如 {"name":"value"})或将反序列化类型更改为数组或实现集合接口的类型(例如 ICollection、IList),例如可以从 JSON 数组反序列化。也可以将 JsonArrayAttribute 添加到类型中以强制它从 JSON 数组中反序列化。
我得到的 JSON 是:
[{"id":0,"name":"Alice","image":"alice.jpg","fromLocation":"New York","toLocation":"Beijing"},{"id":1,"name":"Bob","image":"bob.jpg","fromLocation":"New Jersey","toLocation":"Boston"},{"id":2,"name":"Joe","image":"joe.jpg","fromLocation":"London","toLocation":"Paris"}]
我的代码行给出错误是:
RootObject rootObject = JsonConvert.DeserializeObject<RootObject>(apiResponse);
RootObject类由http://json2csharp.com/生成:
public class RootObject
{
public int id { get; set; }
public string name { get; set; }
public string image { get; set; }
public string fromLocation { get; set; }
public string toLocation { get; set; }
}
请帮忙?
【问题讨论】:
-
试试
List<RootObject> rootObject = JsonConvert.DeserializeObject<RootObject>(apiResponse); -
看起来像一个数组,试试 List
E: 1 seconds too slow :') -
@VDWWD List
rootObject = JsonConvert.DeserializeObject (apiResponse);给出编译时错误。