以json的形式检索firebase数据

Aya*_*Aya 4 java android json firebase firebase-realtime-database

我想检索存储在firebase数据库中的数据,但是使用正确的Json格式,问题是当使用String.valueOf(dataSnapshot.getValue())它时不是正确的json格式.例如,如果是数据

{
  "properties" : {
     "last_update" : "15-02-2017 02:48:00 pm",
     "last_update_code" : "1258884"  
  } 
}
Run Code Online (Sandbox Code Playgroud)

返回的值就是这样

properties = {last_update = 15-02-2017 02:48:00 pm,last_update_code = 1258884}
Run Code Online (Sandbox Code Playgroud)

没有引号或(:).

那么有没有办法以第一种格式将数据作为字符串?

min*_*zur 6

这就是我所做的。首先,从 DataSnapshot 创建一个 java 对象,然后使用 Gson 从该对象获取 JSON。

Object object = datasnapshot.getValue(Object.class);
String json = new Gson().toJson(object);
Run Code Online (Sandbox Code Playgroud)

  • 完美的。无需创建不必要的 Pojo 类即可在 json 中获得响应。这个答案的 Kotlin 版本 val `object` = dataSnapshot.getValue(Any::class.java) val json = Gson().toJson(`object`) (2认同)

Roh*_*ark 5

你会得到当你尝试将转换你得到的返回值jsonString.

因此,您可以使用以下方法之一,而不是这样做: -

第一: -

String lastUpdate = dataSnapshot.child(last_update).getValue(String.class);
String last_update_code = dataSnapshot.child(last_update_code).getValue(String.class);
Run Code Online (Sandbox Code Playgroud)

第二: -

定义映射到Json的POJO.之后,使用以下代码.

YourPOJO yourPOJO = dataSnapshot.getValue(YourPOJO.class);
Run Code Online (Sandbox Code Playgroud)

你可以在这里阅读更多相关信息.