【发布时间】:2013-11-14 21:23:55
【问题描述】:
我有一个非常简单的 POCO 类:
[JsonArray]
public class WebGame
{
public int Key { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
尝试反序列化一个 json 字符串:
string json = @"[{'Key':'1','Name':'WebGame','Description':'bla-bla-bla'}]";
var myDeserializedObjList = (List<WebGame>)(JsonConvert.DeserializeObject(json, typeof(List<WebGame>)));
var game = myDeserializedObjList[0];
我得到一个例外:
无法反序列化当前 JSON 对象(例如 {"name":"value"}) 进入类型“WebGame”,因为该类型需要 JSON 数组(例如 [1,2,3]) 正确反序列化。要修复此错误,请更改 JSON 到 JSON 数组(例如 [1,2,3])或更改反序列化类型 它是一个普通的 .NET 类型(例如,不是像整数这样的原始类型, 不是数组或列表之类的集合类型) 从 JSON 对象反序列化。也可以添加 JsonObjectAttribute 强制它从 JSON 对象反序列化。
这里有什么问题?
【问题讨论】: