2016-06-09 89 views
0

我用json2csharp從我的JSON生成一些類。當我使用DataContractJsonSerializerJsonConvert進行反序列化時,一切正常,但我不明白爲什麼生成器會生成Message2類。它不符合我的邏輯,我想清楚地理解這一點。我認爲Message2應該用在OfflineMessage裏面,比如List<Message2> messagesMessage1類需要被刪除。我錯過了什麼?爲什麼json2sharp從我的JSON生成一個額外的類?

這些都是json2csharp生成的類(注意,我改名爲MessageMessage1更清晰的問題):

public class Message2 
{ 
    public int status { get; set; } 
    public string sender { get; set; } 
    public string receiver { get; set; } 
    public string msg { get; set; } 
    public int timeStamp { get; set; } 
    public string hash { get; set; } 
    public string msgContext { get; set; } 
} 

public class Message1 
{ 
    public Message2 message { get; set; } 
} 

public class OfflineMessage 
{ 
    public int sequence { get; set; } 
    public List<Message1> messages { get; set; } 
} 

public class Respons 
{ 
    public OfflineMessage offlineMessage { get; set; } 
} 

public class RootObject 
{ 
    public int [email protected] { get; set; } 
    public int [email protected] { get; set; } 
    public List<Respons> responses { get; set; } 
} 

這是JSON的樣子:

{ 
    "@pendingMsg": 0, 
    "@syncStatus": 0, 
    "responses": [ 
    { 
     "offlineMessage": { 
     "sequence": 2, 
     "messages": [ 
      { 
      "message": { 
       "status": 6, 
       "sender": "storng", 
       "receiver": "JoilSp", 
       "msg": "Hello my friend", 
       "timeStamp": 1465398075, 
       "hash": "+eq4cxwICbyNC31X5naQz3Z+R/Lxdw==", 
       "msgContext": "+eq4cxwICbyNC31X5naQz3Z+R/Lxdw==" 
      } 
      }, 
      { 
      "message": { 
       "status": 6, 
       "sender": "JioS", 
       "receiver": "JoilSp", 
       "msg": "nice)))", 
       "timeStamp": 1465398075, 
       "hash": "+eq4cxwICbyNC31X5naQz3Z+R/Lxdw==", 
       "msgContext": "+eq4cxwICbyNC31X5naQz3Z+R/Lxdw==" 
      } 
      } 
     ] 
     } 
    } 
    ] 
} 

回答

1

它創造了Message2因爲messages屬性是一個對象數組,而這些對象在其message屬性中包含其他對象。它需要一個類來表示messages數組的成員,而另一個類表示message屬性的值。

如果你負責你的JSON格式的,它可能是更清潔構建您的JSON是這樣的:

{ 
    "@pendingMsg":0, 
    "@syncStatus":0, 
    "responses":[ 
     { 
     "offlineMessage":{ 
      "sequence":2, 
      "messages":[ 
       { 
        "status":6, 
        "sender":"storng", 
        "receiver":"JoilSp", 
        "msg":"Hello my friend", 
        "timeStamp":1465398075, 
        "hash":"+eq4cxwICbyNC31X5naQz3Z+R\/Lxdw==", 
        "msgContext":"+eq4cxwICbyNC31X5naQz3Z+R\/Lxdw==" 
       }, 
       { 
        "status":6, 
        "sender":"JioS", 
        "receiver":"JoilSp", 
        "msg":"nice)))", 
        "timeStamp":1465398075, 
        "hash":"+eq4cxwICbyNC31X5naQz3Z+R\/Lxdw==", 
        "msgContext":"+eq4cxwICbyNC31X5naQz3Z+R\/Lxdw==" 
       } 
      ] 
     } 
     } 
    ] 
} 

這將產生你期望的那種階級結構。

相關問題