2016-06-09 43 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==" 
       } 
      ] 
     } 
     } 
    ] 
} 

这将产生你期望的那种阶级结构。

相关问题