使用Json.Net将数据反序列化为对象列表

本文关键字:对象 列表 反序列化 数据 Json Net 使用 | 更新日期: 2023-09-27 18:21:31

我有一个Json数据,看起来像:

{
  "prop1": val1,
  "prop2": val2,
  "prop3": val3,
}
{
  "prop1": val4,
  "prop2": val5,
  "prop3": val6,
}

我还有一门课:

public class RootObject
    {
        [JsonProperty("prop1")]
        public string Prop1 { get; set; }
        [JsonProperty("prop2")]
        public string Prop2 { get; set; }
        [JsonProperty("prop3")]
        public string Prop3 { get; set; }
}

现在我正试图这样反序列化这些数据:

List<RootObject> lstObjs = JsonConvert.DeserializeObject<List<RootObject>>(jsonData);

但这给了我一个错误"无法将当前JSON对象(例如{"name":"value"})反序列化为类型"System.Collections.Generic.List",因为该类型需要JSON数组(例如[1,2,3])才能正确反序列化"。

如果我只反序列化一个像这样的对象

RootObject obj = JsonConvert.DeserializeObject<RootObject>(jsonData);

一切都很好。我搞不清出了什么问题。

使用Json.Net将数据反序列化为对象列表

您的JSON数据无效。它应该看起来像:

[
    {
      "prop1": "val1",
      "prop2": "val2",
      "prop3": "val3",
    },
    {
      "prop1": "val4",
      "prop2": "val5",
      "prop3": "val6",
    }
]

它是有效的。