3 回答

TA貢獻1851條經驗 獲得超4個贊
首先不是JSONArray,而是JSONObject。因此將其強制轉換為JSONObject,然后從中獲取1。您將獲得JSONArray。
以下是兩個json字符串的工作示例:
String jsonString = "{\"first\":{\"1\":[{\"id\":1,\"name\":\"jo\"}]}}";
//String jsonString = "{\"first\":{\"1\":[{\"id\":1,\"name\":\"other\"}]}}";
JSONObject users;
try {
users = new JSONObject(jsonString);
users=users.getJSONObject("first");
JSONArray sub = users.getJSONArray("1");
System.out.println(sub.get(0));
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
輸出:
{“ name”:“ jo”,“ id”:1}

TA貢獻1809條經驗 獲得超8個贊
您的json字符串是錯誤的。沒有啦JsonArray
像這樣更改字符串:
String jsonString = "{\"first\":[{\"id\":1,\"name\":\"name1\"},{\"id\":2,\"name\":\"name2\"}]}";
JSONObject users = new JSONObject(jsonString);
JSONArray sub = users.getJSONArray("first");
for (int i = 0; i < sub.length(); i++) {
JSONObject user = sub.getJSONObject(i);
String userID = user.gatInt("id");
String userName = user.gatString("name");
}

TA貢獻1876條經驗 獲得超5個贊
您確定由于將字符串更改為“ jo”而收到此類錯誤,因為這對我來說似乎不是問題。我已經對您的代碼進行了一些修改,并且工作正常:
String jsonString = "{\"first\":{\"1\":[{\"id\":1,\"name\":\"jo\"}]}}";
JSONObject users = JSON.parse(jsonString);
JSONArray sub = users.first;
添加回答
舉報