JSONObject和JSONArray - 需要获取数组中保存的值

时间:2012-09-25 13:14:07

标签: java json arrays

我有以下JSON数据结构:

{
    "myRequest": {
    "item1": "value1",
    "itme2": "value2",
    "item3Holder": {
        "id": [
        "ID001",
        "ID002",
        "ID003",
        "ID004"
        ]
    }
    }
}       

我需要能够从id []数组中获取id值。

我可以获取item1-3的值,但无法分离id []数组值。

JSONObject requestObj = new JSONObject(data.trim()).getJSONObject("myRequest");

// Retrieve items from JSONObject
String item1 = requestObj.getString("item1");
String item2 = requestObj.getString("item2");
String item3 = requestObj.getString("item3");

// Retrieve all id's
JSONArray ids = requestSubObj.getJSONArray("item3Holder");

for (int i = 0; i < ids.length(); i++) {
    String id = ids.toString();
    logger.info("id : " + id);
}

1 个答案:

答案 0 :(得分:2)

我认为你应该得到这样的对象:

JSONObject item3Holder = requestObj.getJSONObject("item3Holder");
JSONArray ids = item3Holder.getJSONArray("id");

您还需要为.getString(i)对象

调用ids
for (int i = 0; i < ids.length(); i++) {
    String id = ids.getString(i).toString();
    logger.info("id : " + id);
}