使用org.json在java中获取JSON字符串

时间:2011-08-28 22:55:57

标签: java json org.json

[{"post":{"titel":"Glee","interpret":"Bran Van 3000","jahr":"1997","id":"5"}},{"post":{"titel":"Goodbye Country (Hello Nightclub)","interpret":"Groove Armada","jahr":"2001","id":"4"}},{"post":{"titel":"Beauty","interpret":"Ryuichi Sakamoto","jahr":"1990","id":"1"}}]

上面的字符串是我在json中所拥有的,现在我想做的是只获得“post”和“titel”的值,如上面的字符串我有3个值的帖子,这是有意义的我。但是,现在我想要的是打印post的所有3个值和post字符串中的每个值。

JSONArray jsonArray = new JSONArray(jsonString);
            columns = new String[jsonArray.length()];
            for (int i = 0; i < jsonArray.length(); i++) {
                JSONObject jsonObject = jsonArray.getJSONObject(i);
                columns[i]=jsonObject.getString("post");
            }

上面的代码返回3个post值。如果我想在帖子中打印帖子的值和列的每个值,我该怎么办?

1 个答案:

答案 0 :(得分:0)

我会做这样的事情(我不打算使用columns数组进行打印,并且未对此代码进行测试):

JSONArray jsonArray = new JSONArray(jsonString);
for (int i = 0; i < jsonArray.length(); i++) {
    JSONObject jsonObject = jsonArray.getJSONObject(i);
    JSONObject postObj = jsonObject.getJSONObject("post");
    for (String i : postObj.keys()) {
         System.out.println("Key: " + i + "; Value: " + postObj.getString(i));
    }
}

即,处理每个数组元素的“post”对象返回的Object的每个元素。