Java 如何从JSON获取数组

Java 如何从JSON获取数组,java,android,json,Java,Android,Json,我正在尝试从JSON对象获取用户列表,这是我的JSON响应: {"users":[{"user":"David David","id_user":"10"},{"user":"Ale Camp","id_user":"14"}],"success":true}` 这是我的代码: try { JSONObject jobj = new JSONObject(responseContent); JSONArray users = jobj.getJSONArray("users")

我正在尝试从JSON对象获取用户列表,这是我的JSON响应:

{"users":[{"user":"David David","id_user":"10"},{"user":"Ale Camp","id_user":"14"}],"success":true}`
这是我的代码:

try {
    JSONObject jobj = new JSONObject(responseContent);
    JSONArray users = jobj.getJSONArray("users");
    String utilisateur = String.valueOf(users.get(Integer.parseInt("user")));
    Log.e("users",String.valueOf(utilisateur));
}
 catch (JSONException e1) {
         e1.printStackTrace();
}
但应用程序因以下错误而崩溃:

java.lang.NumberFormatException:对于输入字符串:Usilizateur


这是因为与密钥用户关联的值的类型为String而不是Integer。可能您打算使用密钥id\u用户。如果您的目的不是仅仅删除解析部分,而是真正使用用户:

String utilisateur = users.get("user");
这是问题Integer.parseIntuser无法将用户转换为整数。 如果要打印用户名,则应执行以下操作:

更改此项:

String utilisateur = String.valueOf(users.get(Integer.parseInt("user")));
    Log.e("users",String.valueOf(utilisateur));
与:


您的值已经是字符串类型,因此不需要分析值

所以试试看

try {
    JSONObject jobj = new JSONObject(responseContent);
    JSONArray users = jobj.getJSONArray("users");
    String utilisateur = String.valueOf(users.getString("user"));
    Log.e("users",utilisateur);
}
 catch (JSONException e1) {
         e1.printStackTrace();
}
试试这个

    try {
     JSONObject jobj = new JSONObject(responseContent);
    JSONArray users = jobj.getJSONArray("users");

    for(i=0;i<users.length();i++){
    JSONObject jobj1 = users.getJSONObject(i);
    String user=jobj1.getString("user");
    String user_id=jobj1.getString("id_user");
    }
}
 catch (JSONException e1) {
         e1.printStackTrace();
}

让我知道这项工作是否有效,请仔细检查

try {
JSONObject jobj = new JSONObject(responseContent);
JSONArray users = jobj.getJSONArray("users");

for(int i =0;i<users.length();i++)
  {
  JSONObject user_details = users.get(i);
  String username =  user_details.getString("user");
  Log.e("users",""+username);
  }
}
catch (JSONException e1) {
     e1.printStackTrace();
}
试试这个

 try {
        JSONObject jobj = new JSONObject(responseContent);
        JSONArray users = jobj.getJSONArray("users");
        for (int i = 0; i < users.length(); i++) {
            JSONObject obj = users.getJSONObject(i);
            String userName = obj.getString("user");
            String userId = obj.getString("id_user");

            Log.e("userName: ",userName);
            Log.e("userId: ",String.valueOf(userId));
        }
    }
    catch (JSONException e1) {
        e1.printStackTrace();
    }

因为我在JSONArray中的getint不能应用于java.lang.String时出错
 try {
        JSONObject jobj = new JSONObject(responseContent);
        JSONArray users = jobj.getJSONArray("users");
        for (int i = 0; i < users.length(); i++) {
            JSONObject obj = users.getJSONObject(i);
            String userName = obj.getString("user");
            String userId = obj.getString("id_user");

            Log.e("userName: ",userName);
            Log.e("userId: ",String.valueOf(userId));
        }
    }
    catch (JSONException e1) {
        e1.printStackTrace();
    }