我有一个非常简单的 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 对象反序列化。
这里有什么问题?