J'ai utilisé json2csharp pour générer des classes à partir de mon JSON. Tout fonctionne quand je désérialise avec DataContractJsonSerializer
ou JsonConvert
, mais je ne peux pas comprendre pourquoi le générateur fait la classe Message2
. Cela ne correspond pas à ma logique, et je veux bien le comprendre. Je pense que Message2
devrait être utilisé à l'intérieur de OfflineMessage
comme List<Message2> messages
, et la classe Message1
doit être supprimée. Qu'est-ce que je rate?Pourquoi json2sharp a-t-il généré une classe supplémentaire à partir de mon JSON?
Ce sont les classes générées par json2csharp (notez que je renomme Message
-Message1
pour une question plus claire):
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; }
}
Voici comment le JSON ressemble:
{
"@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=="
}
}
]
}
}
]
}