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

java– 如何获取父节点的值作为字符串?,第1张

概述所以在上面的数据结构中,我想得到ApriliaCaponord1200的价值(在图中标出).我有对Aprilia(根节点)的Firebase引用,我可以获取所有键/值对数据.这是我的代码@overridepublicvoidonDataChange(DataSnapshotdataSnapshot){for(DataSnapshotchild:dataSnapshot.getChild

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

这是我的代码

@overrIDepublic 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 – 如何获取父节点的值作为字符串?全部内容,希望文章能够帮你解决java – 如何获取父节点的值作为字符串?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1101768.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存