从JSONObject获取Key和值

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

[{"id":["5"]},{"Tech":["Java"]}] 

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

 JSONObject jsonObj = new JSONObject("[{"id":["5"]},{"Tech":["Java"]}]"); 

然后我试图通过以下方式获得关键和价值:

 jsonObj.getString("id"); 

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

尝试这个:

 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(); } 

您发送的参数是JsonArray并引用JsonObject。 正确的方法是

 JSONObject jsonObj = new JSONObject("{'id':['5','6']},{'Tech':['Java']}"); System.out.println(jsonObj.getString("id")); JSONArray jsonArray = new JSONArray("[{'id':['5','6','7','8']},{'Tech':['Java']}]"); System.out.println(jsonArray.length()); for(int i=0;i 

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

所以做了这个jsonObj.getString("id");

做这个

jsonObj.getArray("id"); 这会给你那个数组作为回报

就像你在id有一个Json数组一样,你必须这样做

jsonObj.getJSONArray("id");