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)
没有引号或(:).
那么有没有办法以第一种格式将数据作为字符串?
这就是我所做的。首先,从 DataSnapshot 创建一个 java 对象,然后使用 Gson 从该对象获取 JSON。
Object object = datasnapshot.getValue(Object.class);
String json = new Gson().toJson(object);
Run Code Online (Sandbox Code Playgroud)
你会得到当你尝试将转换你得到的返回值json来String.
因此,您可以使用以下方法之一,而不是这样做: -
第一: -
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)
你可以在这里阅读更多相关信息.