我正在使用c#通过提供的REST API与Firebase进行交互。反序列化来自Firebase的响应
当我发送GET请求到一个节点时,我得到了孩子们的预期。
{
"49d360b0-b3a8-4240-bd69-1f91b07365fd" : {
"id" : "49d360b0-b3a8-4240-bd69-1f91b07365fd",
"name" : "Foo",
"value" : "Love me some foo"
},
"8b87b4df-9c04-480b-bb53-43e22059ccfa" : {
"id" : "8b87b4df-9c04-480b-bb53-43e22059ccfa",
"name" : "Bar",
"value" : "Yay, bar"
},
"966fe014-08c3-4f64-93a3-7bd8ed396177" : {
"id" : "966fe014-08c3-4f64-93a3-7bd8ed396177",
"name" : "Name",
"value" : "Text"
}
}
可以有任意数量的孩子。直到我得到回复后,我才知道有多少人。我试图将这个反序列化到一个列表中,尽管任何种类的IEnumerable都应该没问题,因为它可以轻松地转换为列表。我的入门级看起来像这样:
public class Entry
{
public string id { get; set; }
public string name { get; set; }
public string value { get; set; }
}
如何进行反序列化?我一直在使用Newtonsoft进行大部分JSON处理,我是否需要使用不同的库?
UPDATE:在JSON对象的名称也进行调用之前未知的,所以通过指数涉及获取值的解决方案将不会是超级有用
看看这个解决方案 - http:///stackoverflow.com/a/8738149/2571926。 –
谢谢,这让我开始朝着正确的方向发展。尽管这让我意识到一个更大的问题是我不知道字段名是什么。 –
您至少需要知道数据的类型以及它们处理数据的字段。否则,你会变得非常通用,以至于你的代码很难被跟踪和调试。 – krillgar