0

我目前正在使用以下 json 结构,但我不确定如何在我的类上对其进行建模,因为我以前从未遇到过这种结构。将不胜感激任何线索或帮助:

{ "messages": { "1": { "tid": "309", "status": "0", "timestamp": "1379795079", "uid": "1111111111", "txt": "sometext" }, "2": { "tid": "310", "status": "0", "timestamp": "1379795523", "uid": "2222222222", "txt": "sometext2" } }, "status": 1 }

消息值对象不是我所知道的常见 json 结构,我知道这些是对象,但我不知道如何将它们与我的类映射。

4

3 回答 3

0

从技术上讲,您的 json 对象是一个字典关联数组甚至是哈希表(选择适合您的目标语言)。这样的数据结构序列化是完全合理的。

但是,该特定对象可能会更好地序列化为:

{ "messages":
  [
    { "tid": "309"
    , "status": "0"
    , "timestamp": "1379795079"
    , "uid": "1111111111"
    , "txt": "sometext"
    }
  ,
    { "tid": "310"
    , "status": "0"
    , "timestamp": "1379795523"
    , "uid": "2222222222"
    , "txt": "sometext2" }
    }
  ]
, "status": 1
}

(除非发件人想要选择乱序发送单个消息项)。这当然是我要表达的方式。

于 2013-09-22T15:52:37.707 回答
0

我使用json2csharp为我的对象建模。考虑以下 json 对象:

{
    "employees": [
    { "firstName":"John" , "lastName":"Doe" }, 
    { "firstName":"Anna" , "lastName":"Smith" }, 
    { "firstName":"Peter" , "lastName":"Jones" }]
}

我从工具中得到这些对象:

public class Employee
{
    public string firstName { get; set; }
    public string lastName { get; set; }
}

public class RootObject
{
    public List<Employee> employees { get; set; }
}

来源:http: //json2csharp.com/

于 2013-09-22T07:34:14.683 回答
0

这就是我解决它的方法:

公共类 MessagesResponse { [JsonProperty("messages")] 公共字典消息 { get; 放; } [JsonProperty("status")] public int Status { get; 放; } }

感谢@rici,我意识到使用字典可以解决问题

于 2013-09-22T18:25:04.583 回答