我正在使用Android应用程序中的parse API和mongoDB。在我的数据库中,我在JSON对象中存储了一些值:
"address": {
"state": "blabla",
"zipcode": 00000,
"lane": "blabla",
"city": "bla"
}
保存就像魅力一样:
try{
JSONObject address = new JSONObject();
address.put("lane",mLane);
address.put("zipcode",mZipCode);
address.put("city",mCity);
address.put("state",mState);
user.put("address", address);
user.saveInBackground();
Toast.makeText(getContext(),"SAvedSuccessfully",Toast.LENGTH_SHORT).show();
} catch (JSONException j){
Toast.makeText(getContext(),"Error " +j,Toast.LENGTH_SHORT).show();
}
,但我无法弄清楚如何在代码中检索这些数据。它总是返回零值。它与其他非JSON对象值完美搭配。
JSONObject obj = new JSONObject();
obj = ParseUser.getCurrentUser.getJSONObject("address");
这里的obj为null ...
任何帮助将不胜感激!
查看此示例。
ParseObject gameScore = new ParseObject("GameScore");
gameScore.put("score", 1337);
gameScore.put("playerName", "Sean Plott");
gameScore.put("cheatMode", false);
gameScore.saveInBackground()`;
我将使用gson转换为字符串,然后将其存储在分析中。
Gson gson = new Gson();
String json = gson.toJson(address);
user.put("address",json);
现在获取数据。
Type type = new TypeToken<JSONObject>(){}.getType();
String json = ParseUser.getCurrentUser.getJSONObject("address");
JSONObject data = gson.fromJson(type,json);
您甚至可以:首先将Parse
更改为SharedPreferences
创建共享
public void putUser (String key, String value ) {
SharedPreferences pref = getSharedPreferences("YourPref", MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putString(key, value);
editor.commit();
}
接下来创建jsonobject
JSONObject address = new JSONObject();
address.put("lane", "l");
address.put("zipcode", "z");
address.put("city", "c");
address.put("state", "s");
putUser("address", address.toString());
结束获取jsonobject
public String getUser (String key) {
SharedPreferences pref = getSharedPreferences("YourPref", MODE_PRIVATE);
return pref.getString(key, "");
}
JSONObject addressObject = new JSONObject(new String(getUser("address")));
if(addressObject != null) {
addressObject.getString("lane");
addressObject.getString("zipcode");
addressObject.getString("city");
addressObject.getString("state");
}
okey,我对@caspain弄清楚了!为了将数据保存到数据库:
ParseUser user = ParseUser.getCurrentUser();
JSONObject address = new JSONObject();
Gson gson = new Gson();
try{
address.put("lane",mLane);
address.put("zipcode",mZipCode);
address.put("city",mCity);
address.put("state",mState);
} catch (JSONException j){
Log.i("TEST",j.toString());
}
String json = gson.toJson(address);
user.put("address", json);
user.saveInBackground();
并检索数据:
String json = ParseUser.getCurrentUser().getJSONObject("address").toString();
try{
JSONObject data = new JSONObject(json);
String lane = data.getString("lane"); // do whatever with your JSON Object
}catch (JSONException j){
Log.i("Erreur",j.toString());
}