我从Firebase实时数据库的task.getResult().getValue()
数据。它看起来像:
{
jyIibta0UWaRF2={Name=Value1, Surname=Value2},
Oy8r5SEYacKKM2={Name=Value3, Surname=Value4}
}
如何将其转换为Array。所以我可以通过索引找到一个项目。
Like:
data[1][1]; //Must return "Surname=Value4"
要将对象转换为数组,可以这样做:
const obj = {
jyIibta0UWaRF2: {Name: "Value1", Surname: "Value2"},
Oy8r5SEYacKKM2: {Name: "Value3", Surname: "Value4"}
}
let data = [];
Object.keys(obj).forEach((key) => {
data.push(["Name="+obj[key].Name, "Surname="+obj[key].Surname]);
});
console.log(data[1][1]);
但是既然你提到这来自Firebase实时数据库,我建议学习从那里导航DataSnapshot
类。给定具有您所显示的结构的snapshot
,您可以使用:
for (DataSnapshot child: snapshot.getChildren()) {
Log.d("Firebase", child.getKey()); // "jyIibta0UWaRF2", "Oy8r5SEYacKKM2"
Log.d("Firebsae", child.child("Surname").getValue(String.class); // "Value2", "Value4"
}
它使用两种方法在DataSnapshot
中导航数据:
- 如果你不知道你需要的键,你可以用
getChildren()
循环遍历所有的子/属性。 - 如果你知道你需要的密钥/名称,你可以通过
child(...)
访问它。
检索数据:
- 使用属性的数据类型(本例中为
String.class
)调用getValue(...)
。