我在我的Android应用程序中一直使用Parse.com数据库,但我似乎无法在过去几个小时内通过此错误。
我想要的只是从Parse.com中检索一个JSONObject和JSONArray,但我不断得到“非法状态异常”,我不明白为什么。我到处寻找,我无法弄清楚我做错了什么。
这是我对JSONObejct的创建:(同样适用于数组,但我会为您省去麻烦):
JSONObject x = new JSONObject();
try {
x.put("col_1" ,23.234);
x.put("col_2" ,14.34);
} catch (JSONException e) {
Log.e("JSON_CREATION", e.getMessage());
}
newClient.put("fff", x); // This is a ParseObject ojbect, which I later save using
// saveInBackground() (and also tried with 'save()'
上面的代码完全正常,我还在Parse.Com中检查了确实保存了具有这些特定值的新对象。
现在我只需要恢复这些数据。这就是我的工作:
**JSONObject a = newClient.getJSONObject("fff");** // This line throws 'illegalStateException'
try {
double b = a.getDouble("col_1");
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
会恭喜任何帮助。
答案 0 :(得分:0)
解决了它。
看来我持有的ParseObject实例并不是最新的(我以为我之前已经拿过它)。
解决方案是调用x.fetch()/ x.fetchInBackground()/ x.fetchIfNeededInBackground()等。 我不需要运行查询,因为正如我所说 - 我持有这个对象的实例。
希望有所帮助。