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

时间:2015-11-11 07:32:57

标签: c# json serialization json.net

我有一个类似的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);

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

如果我只反序列化一个对象,如

RootObject obj = JsonConvert.DeserializeObject<RootObject>(jsonData);
一切正常。我无法弄清楚问题是什么。

1 个答案:

答案 0 :(得分:1)

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

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

它有效。