2015-06-30 111 views
1

logcat的误差在AndroidStudio错误解析做JSON至字符串JSON转换为阵列

06-30 17:06:58.054 27785-30012/br.net.sum.mobilecrm E/Erro﹕ Erro no parsing do JSON 
org.json.JSONException: Value {"success":1,"usuarios":[{"usr_senha":"33e234d4821bbbf4440a22bd81f7a814","usr_login":"Guilherme","usr_codigo":"21","usr_nome":"Guilherme","usr_email":"[email protected]"},{"usr_senha":"30d16fa15cfddaefeca505b6876cf9c0","usr_login":"Telemarketing","usr_codigo":"27","usr_nome":"Telemarketing","usr_email":"[email protected]"}]} of type org.json.JSONObject cannot be converted to JSONArray 
     at org.json.JSON.typeMismatch(JSON.java:111) 

线路错误:JSONArray usuariosJson =新JSONArray(jsonString);

private List<Usuario> getUsuarios(String jsonString) { 
     List<Usuario> usuarios = new ArrayList<Usuario>(); 
     try { 
      JSONArray usuariosJson = new JSONArray(jsonString); 

      for (int i = 0; i < usuariosJson.length(); i++) { 
       JSONObject usuario = new JSONObject(usuariosJson.getString(i)); 
       Log.i("USUARIO ENCONTRADO: ", 
         "nome=" + usuario.getString("usr_nome")); 

       Usuario objetoUsuario = new Usuario(); 
       objetoUsuario.setUsr_nome(usuario.getString("usr_nome")); 
       objetoUsuario.setUsr_login(usuario.getString("usr_login")); 
       usuarios.add(objetoUsuario); 
      } 

我找不到错误,谢谢你的帮助。

回答

0

问题是你有一个对象包装你的数组。

更换

JSONArray usuariosJson = new JSONArray(jsonString); 

随着

JSONObject usuariosWrapper = new JSONObject(jsonString); 
JSONArray usuariosJson = usuariosWrapper.getJSONArray("usuarios"); 
+0

大,仅此而已。谢谢。我明白我的错误。谢谢。 – GNULopes

+0

@GNULopes不客气。请解决您的问题,将我的答案标记为解决方案。 – omainegra