无法使用 Json.Net 反序列化对象



我有一个非常简单的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] 属性,它会正常工作

相关内容

  • 没有找到相关文章

最新更新