在 Android 中将 JSON 个对象保存到 Firebase
Saving JSON object to Firebase in Android
我是 Firebase 的新手,我正在尝试将 JSON 对象数据放入我的 Firebase。
我知道如何将数据作为 class 对象放入 Firebase,但我想将 JSON 对象数据放入。
有没有什么方法可以将 JSON 对象数据放入 Firebase 而无需将其转换为 POJO?
在 firebase 上也保存 JSON 值 就是这么简单。假设您已经调用了您的 firebase 参考
Firebase ref = new Firebase("https://docs-examples.firebaseio.com/android/saving-data/fireblog");
然后您将使用 Map
对象传递您的数据。 Map
用键保存值。在您的情况下,您将有一个 String
键和 JSONObject
值。
Firebase userRef = ref.child("user");
Map<String, JSONObject> userMap= new HashMap<String, JSONObject>();
JSONObject tempObject = new JSONObject();
try{
tempObject.put("birthday","1992");
tempObject.put("fullName","Emin AYAR");
}catch(Exception e){
e.printStackTrace();
}
userMap.put("myUser", tempObject);
userRef .setValue(userMap);
由于您在问题中标记了 android,所以我猜您想从 Android 客户端将一些数据放入您的 firebase 数据库中。
您有一些 JSON 数据,您希望将其存储在 firebase 数据库中,对吗?这是完成它的分步过程。
我真的不知道你为什么要避免使用 POJO。它使整个操作更加简化。现在让我们假设您有一个 JSON 字符串。您需要将 JSON 映射到 java class 以将其直接放入 firebase。 Firebase 以类似 JSON 的格式存储数据,这种格式很容易理解。
我使用 Gson 将 JSON 字符串映射到特定的 java 对象。这是迄今为止我发现的最简单的方法,只需几行代码。
Gson gson = new Gson();
YourPOJO myPOJO = gson.fromJson(jsonString, YourPOJO.class);
现在您已成功将 JSON 字符串映射到 myPOJO
对象。您现在已准备好将此对象放入您的 Firebase 数据库中。
让我们引用您的 Firebase 数据库,然后在您要放置数据的特定节点中调用 setValue
。
Firebase ref = new Firebase(YOUR_FIREBASE_REF);
ref.setValue(myPOJO);
简单!
这里建议:Convert a JSON String to a HashMap
您可以轻松地将 json object/string 转换为 Map<String, Object>
(您甚至不需要创建 POJO):
Firebase ref = new Firebase(YOUR_FIREBASE_REF);
Map<String, Object> map = new Gson().fromJson(jsonString, new TypeToken<HashMap<String, Object>>() {}.getType());
ref.setValue(map);
是的,你可以做到这一点。首先将 json 转换为字符串,然后执行以下操作:
String jsonString; //set to json string
Map<String, Object> jsonMap = new Gson().fromJson(jsonString, new TypeToken<HashMap<String, Object>>() {}.getType());
我正在使用 "updateChildren" 方法,因为我想将 JSON 对象直接添加到我的子对象的根目录中
firebaseDatabaseRef.child("users").child(uid).updateChildren(jsonMap);
如果您不在意或想设置一个新节点,请使用
firebaseDatabaseRef.child("users").child(uid).child({your new node}).setValue(jsonMap);
Kotlin 中的解决方案 因为自动转换转换它时出现编译时错误提示:
val jsonMap = Gson().fromJson<Any>(stringJson, object : TypeToken<HashMap<String, Any>>() {}.type)
我是 Firebase 的新手,我正在尝试将 JSON 对象数据放入我的 Firebase。 我知道如何将数据作为 class 对象放入 Firebase,但我想将 JSON 对象数据放入。
有没有什么方法可以将 JSON 对象数据放入 Firebase 而无需将其转换为 POJO?
在 firebase 上也保存 JSON 值 就是这么简单。假设您已经调用了您的 firebase 参考
Firebase ref = new Firebase("https://docs-examples.firebaseio.com/android/saving-data/fireblog");
然后您将使用 Map
对象传递您的数据。 Map
用键保存值。在您的情况下,您将有一个 String
键和 JSONObject
值。
Firebase userRef = ref.child("user");
Map<String, JSONObject> userMap= new HashMap<String, JSONObject>();
JSONObject tempObject = new JSONObject();
try{
tempObject.put("birthday","1992");
tempObject.put("fullName","Emin AYAR");
}catch(Exception e){
e.printStackTrace();
}
userMap.put("myUser", tempObject);
userRef .setValue(userMap);
由于您在问题中标记了 android,所以我猜您想从 Android 客户端将一些数据放入您的 firebase 数据库中。
您有一些 JSON 数据,您希望将其存储在 firebase 数据库中,对吗?这是完成它的分步过程。
我真的不知道你为什么要避免使用 POJO。它使整个操作更加简化。现在让我们假设您有一个 JSON 字符串。您需要将 JSON 映射到 java class 以将其直接放入 firebase。 Firebase 以类似 JSON 的格式存储数据,这种格式很容易理解。
我使用 Gson 将 JSON 字符串映射到特定的 java 对象。这是迄今为止我发现的最简单的方法,只需几行代码。
Gson gson = new Gson();
YourPOJO myPOJO = gson.fromJson(jsonString, YourPOJO.class);
现在您已成功将 JSON 字符串映射到 myPOJO
对象。您现在已准备好将此对象放入您的 Firebase 数据库中。
让我们引用您的 Firebase 数据库,然后在您要放置数据的特定节点中调用 setValue
。
Firebase ref = new Firebase(YOUR_FIREBASE_REF);
ref.setValue(myPOJO);
简单!
这里建议:Convert a JSON String to a HashMap
您可以轻松地将 json object/string 转换为 Map<String, Object>
(您甚至不需要创建 POJO):
Firebase ref = new Firebase(YOUR_FIREBASE_REF);
Map<String, Object> map = new Gson().fromJson(jsonString, new TypeToken<HashMap<String, Object>>() {}.getType());
ref.setValue(map);
是的,你可以做到这一点。首先将 json 转换为字符串,然后执行以下操作:
String jsonString; //set to json string
Map<String, Object> jsonMap = new Gson().fromJson(jsonString, new TypeToken<HashMap<String, Object>>() {}.getType());
我正在使用 "updateChildren" 方法,因为我想将 JSON 对象直接添加到我的子对象的根目录中
firebaseDatabaseRef.child("users").child(uid).updateChildren(jsonMap);
如果您不在意或想设置一个新节点,请使用
firebaseDatabaseRef.child("users").child(uid).child({your new node}).setValue(jsonMap);
Kotlin 中的解决方案 因为自动转换转换它时出现编译时错误提示:
val jsonMap = Gson().fromJson<Any>(stringJson, object : TypeToken<HashMap<String, Any>>() {}.type)