我有一个非常简单的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 对象(例如 {"名称":"值"}) 类型为"WebGame",因为该类型需要一个 JSON 数组(例如 [1,2,3]) 以正确反序列化。要修复此错误,请将 JSON 到 JSON 数组(例如 [1,2,3])或更改反序列化类型,以便 它是普通的 .NET 类型(例如,不是像整数这样的基元类型, 不是像数组或列表那样的集合类型),可以是 从 JSON 对象反序列化。也可以添加 JsonObjectAttribute 以强制其从 JSON 对象反序列化的类型。
这是怎么回事?
删除 [JsonArray] 属性,它会正常工作