gpt4 book ai didi

java - 如何获取父节点的值作为字符串?

转载 作者:行者123 更新时间:2023-11-29 07:40:38 25 4
gpt4 key购买 nike

Firebase image

所以在上面的数据结构中,我想获取值Aprilia Caponord 1200(图中标注)。我有 Firebase 对 Aprilia(根节点)的引用,我可以获得所有键/值对数据。

这是我的代码

@override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot child : dataSnapshot.getChild()) {
Map<?, ?> value = (Map<?, ?>) child.getValue();
String bike_price = value.get("price").toString();
String image_url = value.get("image_url").toString();
}
}

很明显我可以得到所有具有键/值关系的子节点的值。但是我无法具体获取父节点的名称。那么如何获取String格式的父节点的值呢?

如果我打印 child.getValue().toString(),我得到 JSON 值,但我对解析 JSON 不感兴趣。有没有具体的获取父节点值的方法?

{Aprilia Caponord 1200={image_url=____________, price=18.35}.. }

最佳答案

您可能正在寻找 DataSnapshot 上的 getKey() 方法:

    mFirebaseRef = new Firebase("https://yours.firebaseio.com");
mFirebaseRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot child: dataSnapshot.getChildren()) {
Log.i("MainActivity", child.getKey());
}
}

@Override
public void onCancelled(FirebaseError firebaseError) {
Log.e("MainActivity", "onCancelled", firebaseError.toException());
}
});

这里有几点需要注意:

  • 我将您代码中的 getChild() 更改为 getChildren(),因为没有我知道的方法 getChild()的。
  • 您应该考虑使用 addChildEventListener,它会在较低级别的节点上为您提供 DataSnapshots
  • 如果您为汽车创建“包装器类”,事情就会变得容易得多。然后,适用于 Android 的 Firebase SDK 会自动将 JSON 解包到该类的实例中。查看我们的 AndroidChat repo这是一个很好的例子。

关于java - 如何获取父节点的值作为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30669363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com