Как разобрать ответ API в Android? - PullRequest
0 голосов
/ 28 сентября 2019

Как мы можем разобрать ответ в Android?

Ответ API равен

{"id":29,"name":"demo","email":"demo@gmail.com"}

Как я могу получить значение идентификатора, имени и адреса электронной почты.

AsyncHttpClient client = new AsyncHttpClient();
client.get("http://XXX.XX.X.XXX/api/api.php?apicall=login", params, new TextHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, String response) {
 prgDialog.hide();
 Toast.makeText(getApplicationContext(), response, Toast.LENGTH_LONG).show();
 try {
   JSONObject jObj = new JSONObject(response);
   Toast.makeText(getApplicationContext(), jObj.getString("email"), Toast.LENGTH_LONG).show();
 } catch (JSONException e) {
   e.printStackTrace();
   Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
 }
}
});

Ответы [ 2 ]

0 голосов
/ 28 сентября 2019

Замените ваш код следующим образом. Вот как вам нужно анализировать, если у вас больше, чем на объекте, тогда вы должны использовать цикл.

 AsyncHttpClient client = new AsyncHttpClient();
    client.get("http://XXX.XX.X.XXX/api/api.php?apicall=login", params, new TextHttpResponseHandler() {
        @Override
        public void onSuccess(int statusCode, Header[] headers, String response) {
            prgDialog.hide();
            Toast.makeText(getApplicationContext(), response, Toast.LENGTH_LONG).show();
            try {
                JSONObject reader = new JSONObject(response);
                int id  = reader.getInt("id");
                String name  = reader.getString("name");
                String email  = reader.getString("email");
            } catch (JSONException e) {
                e.printStackTrace();
                Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
            }
        }
    });
0 голосов
/ 28 сентября 2019

попробуйте это:

     Thread thread = new Thread(new Runnable() {

            @Override
            public void run() {
                try {

                    String mainUrl = "http://YOUR_ADRESS";


                    StringBuilder sbPostData = new StringBuilder(mainUrl);
                    mainUrl = sbPostData.toString();
                    try {
                        //prepare connection
                        URL myURL = new URL(mainUrl);
                        URLConnection myURLConnection = myURL.openConnection();
                        myURLConnection.connect();
                        BufferedReader reader = new BufferedReader(new InputStreamReader(myURLConnection.getInputStream()));

                        //reading response
                        String response;
                        response = reader.readLine();
                        JSONArray jsonarray = new JSONArray(response);

                        JSONObject jsonobject0 = jsonarray.getJSONObject(0);
                            JSONObject jsonobject0 = jsonarray.getJSONObject(0);

//getting the email and save it in EMAIL string
//you can do the other parts like this. its easy 

                        String EMAIL =  jsonobject0.getString("email");


                        while ((response = reader.readLine()) != null)
                            //print response
                            Log.d("RESPONSE", ""+response);
                        //finally close connection
                        reader.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }

                } catch (Exception e) {
                    e.printStackTrace();

                }
            }
        });

        thread.start();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...