Lista de usuarios de Parse de la respuesta Json de Github

Así que estoy parsing la matriz de usuarios de Github usando la biblioteca AsyncHttpClient . Y el resultado de este análisis es el object String con respuesta Json (sigue siendo un borrador):

private String getResponse() { AsyncHttpClient client=new AsyncHttpClient(); RequestParams params=new RequestParams(); params.put("since","0"); client.get("https://api.github.com/users", params, new AsyncHttpResponseHandler() { @Override public void onFailure(int arg0, Header[] arg1, byte[] arg2, Throwable arg3) { } @Override public void onSuccess(int arg0, Header[] arg1, byte[] arg2) { try { String content = new String(arg2, "UTF-8"); //content is json response that can be parsed. response = content; } catch (UnsupportedEncodingException e1) { e1.printStackTrace(); } } }); if (response.isEmpty()) return "Users not found"; else return response; } 

La pregunta es ¿cómo puedo analizar esta respuesta? Quiero decir, ¿cómo haces esto cuando no conoces la estructura de la API de usuario de Github? Estoy tratando de resolver esto de esta manera:

 private ArrayList<String> parseResponse (String response) { try { JSONObject reader = new JSONObject(response); JSONObject nameObject = reader.getJSONObject("????"); //I don't know //how that object is called since no idea about structure! name = nameObject.getString("name"); userList.add(name); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return userList; } 

¿Y cómo iterar esto correctamente para get a cada usuario?

Gracias por adelantado.

Para analizar el inicio de session de cada usuario en la respuesta, debe iterar sobre JSONArray, así:

 try { JSONArray readerArray = new JSONArray(result); for(int i=0;i<readerArray.length();i++){ JSONObject userObject = (JSONObject) readerArray.get(i); String login = userObject.getString("login"); //add login to your ArrayList here } } catch (JSONException e) { e.printStackTrace(); } 

Donde result es una cadena con su respuesta Json .

Simplemente navegue a https://api.github.com/users en su browser y eche un vistazo.

Ejemplo:

 [ { "login": "", "id": 0, "avatar_url": "", "gravatar_id": "", "url": "", "html_url": "", "followers_url": "", "following_url": "", "gists_url": "", "starnetworking_url": "", "subscriptions_url": "", "organizations_url": "", "repos_url": "", "events_url": "", "received_events_url": "", "type": "User", "site_admin": false }, {...} ] 

Puede ver desde [] que el elemento de nivel superior es un JSONArray. Entonces necesita get esta matriz y luego acceder al JSONObject en cada índice.

 JSONArray users = new JSONArray(response); for(int i=0; i<users.length(); i++){ JSONObject user = users.getJSONObject(i); String login = user.getString("login"); }