使用方括号反序列化Json对象

时间:2018-01-04 15:39:50

标签: asp.net-mvc

我试图反序列化json对象但是收到错误。有人可以帮助我。这是一个例子

[
 {
  "heading": "some data",
  "company name":"some data",
  "href":"link"
 },
 {
  "heading": "some data",
  "company name":"some data",
  "href":"link"
 },
 {
  "heading": "some data",
  "company name":"some data",
  "href":"link"
 }
]

这是我如何尝试反序列化对象。提到的json数据来自api并且位于Class1(公共类Class1)

中的模型内部
 public class Class1:ParentObject
 {
   public string something{get; set;}
   public string something{get; set;}
   public string something{get; set;}
 }

控制器内部

 ParentObject a=JsonConvert.DeserializeObject<Class1>(responseData);

我得到的错误是无法反序列化当前的Json数组,因为该类型需要一个JSOn对象...... 将是一个很大的帮助

1 个答案:

答案 0 :(得分:1)

发送的数据是一个数组。当使用众多在线实用程序之一解析时,封闭的模型看起来像这样。

public class Model : ParentObject {
    public string heading { get; set; }
    [JsonProperty("company name")] //<-- needed because of the space in the property name
    public string companyname { get; set; }
    public string href { get; set; }
}

您需要将JSON反序列化为数组才能使用它。

Model[] a = JsonConvert.DeserializeObject<Model[]>(responseData);