1

我有一个非常简单的 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 对象反序列化。

这里有什么问题?

4

1 回答 1

1

删除 [JsonArray] 属性,它会正常工作

于 2013-11-04T09:56:51.117 回答