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;
添加回答
举报