如何获取动态JSON数组中每个对象的键?

时间:2014-07-10 04:42:38

标签: java android json arrays

如何解析此对象并获取每个人的姓名(密钥)?

我不能只做String name = jsonObject.getString("name");,因为名称是,而不是值。

JSONObject jsonObject =

{
    "data" :
    [{
        "Bob": {
            "last-name": "Jorgenson",
            "email": "b@b.com",
        },

        "Steve": {
            "last-name": "Bobson",
            "email": "steve@juno.com",
        },
    }],
    "statusCode" : 200
}

那么使用动态命名的密钥解析它的最佳方法是什么?

更新

jArray取自现在代表的jsonObject。但是,由于与尝试从jsonObject.get("data")获取jArray相关的类型错误,我在实现答案时遇到了问题

声明

是的,这是非常基本的东西。动态的一点让我失望。有许多类似的问题,但它们通常涉及许多其他因素。我可以成功下载数据并将其存储在上面的JSONObject jsonObject 中。我只需要弄清楚如何解析上面列出的数据。

3 个答案:

答案 0 :(得分:4)

    Iterator<String> keys = jsonObject.keys();
    while (keys.hasNext()) {
        String key = keys.next();
    }

答案 1 :(得分:2)

JSONObject的keys()方法可能是您正在寻找的方法。

答案 2 :(得分:0)

你可以用这个:

for(int i=0;i<jsonArray.length();i++){
    JSONObject temp = jsonArray.getJSONObject(i);
    String name;
    Iterator<String> keys = temp.keys();
    if(keys.hasNext())
        name = keys.next();
}