我用json2csharp从我的JSON生成一些类。 当我使用 DataContractJsonSerializer
或 JsonConvert
反序列化时,一切都在工作,但我不明白为什么生成器会制作 Message2
类。 它不符合我的逻辑,我想清楚地理解这一点。 我认为Message2
应该在像List<Message2> messages
这样的OfflineMessage
中使用,并且需要删除Message1
类。 我错过了什么?
这些是 json2csharp 生成的类(请注意,我将 Message
重命名为 Message1
以获得更清晰的问题):
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 __invalid_name__@pendingMsg { get; set; }
public int __invalid_name__@syncStatus { 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=="
}
}
]
}
}
]
}
它正在创建一个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=="
}
]
}
}
]
}
这应该产生您期望的类结构。