从JSONObject获取Key和值

use*_*864 7 java json

我试图从我的JSONObject中提取Key和值.但我无法做到这一点.这是JSON:

[{"id":["5"]},{"Tech":["Java"]}]
Run Code Online (Sandbox Code Playgroud)

它最初是一个字符串.我使用以下方法将其转换为JSONObject:

JSONObject jsonObj = new JSONObject("[{"id":["5"]},{"Tech":["Java"]}]");
Run Code Online (Sandbox Code Playgroud)

然后我试图获得关键和价值:

jsonObj.getString("id");
Run Code Online (Sandbox Code Playgroud)

但它给了我无效.有人可以帮我从这里出去吗?

waj*_*jih 8

试试这个:

try {
    JSONArray jsonArr = new JSONArray("[{\"id\":[\"5\"]},{\"Tech\":[\"Java\"]}]");

    for (int i = 0; i < jsonArr.length(); i++) {
        JSONObject jsonObj = jsonArr.getJSONObject(i);
        String k = jsonObj.keys().next();
        Log.i("Info", "Key: " + k + ", value: " + jsonObj.getString(k));
    }

} catch (JSONException ex) {
    ex.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)


Vip*_*ary -1

因为id你没有字符串,你有一个字符串数组,

所以不想这样做 jsonObj.getString("id");

做这个

jsonObj.getArray("id");这将为您提供该数组作为回报

就像如果你有一个 Json 数组那么id你必须这样做

jsonObj.getJSONArray("id");