【发布时间】:2017-03-01 23:24:15
【问题描述】:
所以,我有一个以下格式的 json 文件
{
"-KeArK3V02mXYWx2OMWh" : {
"Description" : "this is a description",
"Location" : "Atlanta",
"Name" : "Event One",
"Time" : "2017-03-01T21:53:12.924645Z"
},
"-KeAtCNF_rmewZ_U3PpH" : {
"Description" : "another description",
"Location" : "Charlotte",
"Name" : "Event Two",
"Time" : "2017-03-01T22:01:25.603547Z"
},
"-KeAtd8CQW_EfH3Sw4YQ" : {
"Description" : "description goes here",
"Location" : "Toronto",
"Name" : "Event Three",
"Time" : "2017-03-01T22:03:19.3953859Z"
}
}
我有一个名为 Event 的类,其定义如下
class Event {
public string Description { get; set; }
public string Location { get; set; }
public string Name { get; set; }
public DateTime Time { get; set; }
}
我想通过这个并将每个子节点反序列化为 Event 对象,基本上将整个 JSON 反序列化为 List
问题是事件不在数组中,它们是另一个 JSON 对象的子节点。所以事实证明它并不那么简单
List<Event> elist = JsonConvert.DeserializeObject<List<Event>>(jsonResult);
我看到过类似的问题,询问项目在 JSON 数组中的组织位置,我尝试了那里列出的解决方案,但它们仅在它是实际数组时才有效,而不是我这里的结构。 Google Firebase 是我在这里使用的,不幸的是它不支持 JSON 数组,所以我无法将项目包含在数组中。
我不太习惯 JSON 语法,所以我可能在这里遗漏了一些非常明显的东西,但我完全被难住了。
任何帮助将不胜感激。
【问题讨论】:
-
@JanakaDissanayake 我今天早些时候看了那篇文章并尝试了他们使用的方法。不幸的是,该示例位于数组中,不适用于这种情况
-
我认为拥有完整的 JSON 文档会很有帮助,否则我们只是猜测。
-
Event不是个好名字。
标签: c# json firebase firebase-realtime-database