【问题标题】:Cannot deserialize object with Json.Net无法使用 Json.Net 反序列化对象
【发布时间】: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 对象反序列化。

这里有什么问题?

【问题讨论】:

    标签: json json.net


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2013-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多