使用DataSnapshot.getValue()时是否可以获取JsonObjects或Json格式的字符串?也许我的搜索不够彻底,但我找不到使用自定义序列化器的方法。
Update:
我还没有时间查看最新 SDK 的文档,但似乎JSON 字段有一些选项.
The getValue()
in DataSnapshot
返回一个HashMap
。
因此,在 Firebase 监听器的任何方法中,您都可以:
-
获取 DataSnapshot 的值,它将返回一个HashMap
:
HashMap<String, JSONObject> dataSnapshotValue = (HashMap<String, JSONObject>) dataSnapshot.getValue();
-
投下Hashmap
使用 Gson 转换为有效的 JSON 字符串:
String jsonString = new Gson().toJson(dataSnapshotValue);
-
有了这个有效的jsonString
,根据需要进行投射:
final GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.registerTypeAdapter(User.class, new UserSerializer());
final Gson gson = gsonBuilder.create();
User parsedUser = gson.fromJson(jsonString, User.class);
这使您可以使用任何想要从 Firebase 转换对象的内容,您可以使用自定义序列化器、排除策略,或从中检索一些值HashMap
直接地。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)