我目前正在使用以下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结构,我知道这些是对象,但我不知道如何将它们映射到我的类。
答案 0 :(得分: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; }
}
答案 1 :(得分: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
}
(除非发件人希望选择不按顺序发送单个邮件项目)。这当然是我代表它的方式。
答案 2 :(得分:0)
这就是我解决它的方法:
公共类MessagesResponse { [JsonProperty( “消息”)] 公共字典消息{get;组; } [JsonProperty( “状态”)] public int Status {get;组; } }
感谢@rici,我意识到使用字典可以解决问题