在Java中循环通过gson对象?

时间:2014-03-16 21:53:49

标签: android json eclipse gson

我目前正在开发一个Android应用程序,该应用程序从名为CloudMine的网站获取JSON响应。他们的回答通常采用以下格式:

{
    "success": {
        "key1": { "field": "value1" },
        "key2": { "field1": "value1", "field2": "value2" }
    },
    "errors": {
        "key3": { "code": 404, "message": "Not Found" }
    }
}

我目前想要遍历“success”对象中的所有对象,这样我就可以访问每个对象中的不同字段。但是,我只学会了如何使用gson API中的JsonParser。我得到的最接近的是在成功对象上使用names()方法,但是Eclipse对我大吼大叫,因为这个类型的方法是未定义的。

我感谢所有人都能给予我的帮助。

谢谢!

2 个答案:

答案 0 :(得分:2)

这对我有用:

JsonObject myJsonObject = new Gson().fromJson(myJsonString, JsonObject.class);

            for (Map.Entry<String, JsonElement> entry : myJsonObject.entrySet()) {

                JsonObject entryObj = entry.getValue().getAsJsonObject();
            }

基于对此问题的接受答案,虽然我已根据我的用例对其进行了更改:

javadoc

答案 1 :(得分:-1)

这是一个非常简单的代码,可以在“成功”中迭代对象:

JSONObject json = new JSONObject(responseString);
JSONObject success = json.getJSONObject("success");
JSONObject one;
for(Iterator it=success.keys(); it.hasNext(); ) {
    one = success.getJSONObject((String)it.next());
    //deal with the next object inside your 'success'
}