2017-03-01 40 views
1

我在将某些字符串转换为JSON时遇到问题。C#WebAPI反序列化列表返回null

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

  1. 第一:List<GetBookInfoModel> list = JsonConvert.DeserializeObject<List<GetBookInfoModel>>(strOutput01);

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

我的JSON字符串是这样的:

  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"}]

而且我的模型类是如..

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

在JSON字符串中,属性名称中有很多空格。试着先解决这个问题。 –

回答

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}]}] 

后者的类似。