Parse.com:从服务器检索JSONArray和JSONObject

时间:2014-09-04 12:43:18

标签: android parse-platform arrays illegalstateexception jsonobject

我在我的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();
    }

会恭喜任何帮助。

1 个答案:

答案 0 :(得分:0)

解决了它。

看来我持有的ParseObject实例并不是最新的(我以为我之前已经拿过它)。

解决方案是调用x.fetch()/ x.fetchInBackground()/ x.fetchIfNeededInBackground()等。 我不需要运行查询,因为正如我所说 - 我持有这个对象的实例。

希望有所帮助。