所以在上面的数据结构中,我想得到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 – 如何获取父节点的值作为字符串?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)