为什么反序列化的JSON数组返回null?

时间:2019-08-27 20:06:42

标签: c# asp.net json serialization deserialization

我有一个字符串流,从其中返回JSON数据和API,如下所示:

"{\"Recs\": 
[
   {\"EID\":\"F67_24_6\",\"ReturnPeriod\":\"1\",\"GageStation\":\"NA\"}, 
   {\"EID\":\"T67_24_6\",\"ReturnPeriod\":\"2.37\",\"GageStation\":\"Magueyes Island\"}, 
   {\"EID\":\"R67_24_6\",\"ReturnPeriod\":\"1\",\"GageStation\":\"50147800\"}
]}"

我正在尝试反序列化以返回此值:

{"Recs":[
          {"EID":"F67_24_6","ReturnPeriod":"1","GageStation":"NA"}, 
          {"EID":"T67_24_6","ReturnPeriod":"2.37","GageStation":"Magueyes Island"},     
          {"EID":"R67_24_6","ReturnPeriod":"1","GageStation":"50147800"}
]}

我正在使用这些公共类来构造返回值:

public class New_Events_Dataset
{
    public string EID { get; set; }
    public string ReturnPeriod { get; set; }
    public string GageStation { get; set; }

}

public class NewRootObject
{
    public List<New_Events_Dataset> Reqs { get; set; }
}

稍后我尝试应用此功能时,基本上得到了{"Reqs":null}的回报。我在这里做什么错了?

var jsonResponse = JsonConvert.DeserializeObject<NewRootObject>(strresult);
string json = new JavaScriptSerializer().Serialize(jsonResponse);
return json;

2 个答案:

答案 0 :(得分:5)

我认为Reqs应该是Recs:

     public class NewRootObject
    {
         public List<New_Events_Dataset> Reqs { get; set; }
    }

尝试:

    public class NewRootObject
    {
         public List<New_Events_Dataset> Recs { get; set; }
     }

答案 1 :(得分:2)

需求重命名为 Recs ,并创建类的默认构造函数和实例化Recs列表

public class NewRootObject
{
    List<New_Events_Dataset> Recs { get; set; }

    public NewRootObject()
    {
        Recs = new List<New_Events_Dataset>();
    }
}