2017-03-01 1 views
1

一部の文字列をJSONに変換する際に問題があります。C#WebAPIリストの逆シリアル化が返される

私は最初の文字列

  1. をデシリアライズするためにC#WebAPIのを使用

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

そして、私の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

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

後者に似ています。

関連する問題