C#WebAPI反序列化列表返回null

时间:2017-03-01 09:19:40

标签: c# json asp.net-web-api

我在将一些字符串转换为JSON时遇到了麻烦。

我使用C#WebAPI来反序列化字符串

  1. 首先:List<GetBookInfoModel> list = JsonConvert.DeserializeObject<List<GetBookInfoModel>>(strOutput01);

  2. 第二:List <GetBookDetInfoModel> list = JsonConvert.DeserializeObject<List<GetBookDetInfoModel>>(strOutput01);

  3. 我的Json String就像:

    1. 首先:[{"allbook ":{ " count01 " :3}, " late ":{ " count02 ":0}}]

    2. 第二:[{"num ":1, " bookname ":"AAAAA","FinTime ":"2017"},{"num ":2, " bookname ":"iOS","FinTime ":"2017"},{"num ":3, " bookname ":"Visual","FinTime ":"2017"}]

    3. 我的Model类就像..

      public class GetBookInfoModel
      {
          List<GetBookSecondInfoModel> allbook { get; set; }
          List<GetBookSecondInfoModel> late { get; set; }
      }
      public class GetBookSecondInfoModel
      {
          public string count01 { get; set; }
      
          public string count02 { get; set; }
      }
      
      
      public class GetBookDetInfoModel
      {
          public string num { get; set; }
      
          public string bookname { get; set; }
      
          public string FinTime { get; set; }
      }
      

      但现在它返回null。

      如何解决此问题?谢谢。

1 个答案:

答案 0 :(得分:1)

事实证明前者存在3个问题。

1)GetBookInfoModel的属性应为public

public class GetBookInfoModel
{
    public List<GetBookSecondInfoModel> allbook { get; set; }
    public List<GetBookSecondInfoModel> late { get; set; }
}

2)应删除JSON中配对引号之间的不必要空格。

3)JSON中的allbooklate都应跟[]

[{"allbook":[{ "count01"  :3}], "late":[{ "count02":0}]}]

后者类似。