Java 如何从JSON获取数组
我正在尝试从JSON对象获取用户列表,这是我的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")
{"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();
}