为什么 json2sharp 从我的 JSON 生成了一个额外的类



我用json2csharp从我的JSON生成一些类。 当我使用 DataContractJsonSerializerJsonConvert 反序列化时,一切都在工作,但我不明白为什么生成器会制作 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=="
               }
            ]
         }
      }
   ]
}

这应该产生您期望的类结构。

相关内容

  • 没有找到相关文章

最新更新