¿Cómo analizo los datos JSON para una aplicación de Android?

He intentado este código …

En primer lugar, hice la clase JSONParse

clase pública JSONParserClass {

Cadena estática jsondata = “”;

JSONObject estático parentobject = null;

static JSONArray parentArray;

InputStream estático es = nulo;

public JSONObject postjsonurl estático (URL de cadena, List

parámetros, método de cadena)

{

tratar{

DefaultHttpClient defaultHttpClient = new DefaultHttpClient ();

HttpPost httpPost = nuevo HttpPost (url);

httpPost.setEntity (nuevo UrlEncodedFormEntity (params));

HttpResponse httpResponse = defaultHttpClient.execute (httpPost);

HttpEntity httpEntity = httpResponse.getEntity ();

es = httpEntity.getContent ();

BufferedReader reader = nuevo BufferedReader (nuevo

InputStreamReader (es, “ISO-8859-1”), 8);

StringBuffer sb = new StringBuffer ();

Línea de cadena = “”;

while ((line = reader.readLine ())! = null)

{sb.append (línea + “\ n”); }

está cerca();

jsondata = sb.toString ();

parentobject = new JSONObject (jsondata);

}

catch (Excepción e) {e.printStackTrace ();}

volver parentobject;

}

}

Y lo mismo para obtener el método

JSONObject estático público getJsonFromUrl (URL de cadena)

{

tratar

{

DefaultHttpClient httpClientttp = new DefaultHttpClient ();

HttpGet httpGet = new HttpGet (url);

HttpResponse httpResponse = httpClientttp.execute (httpGet);

HttpEntity httpEntity = httpResponse.getEntity ();

inputStream = httpEntity.getContent ();

}

captura (excepción e)

{

e.printStackTrace ();

}

StringBuilder sb = new StringBuilder ();

tratar

{

BufferedReader bufferedReader = nuevo BufferedReader (nuevo

InputStreamReader

(inputStream, “ISO-8859-1”), 8);

Línea de cuerda;

while ((line = bufferedReader.readLine ())! = null)

{

sb.append (línea + “\ n”);

}

inputStream.close ();

json = sb.toString ();

}

captura (excepción e)

{

}

tratar

{

jsonObject = nuevo JSONObject (json);

}

captura (excepción e)

{

e.printStackTrace ();

}

return jsonObject;

}

————————————————-

Luego he creado una clase para URL también

URL de clase pública {

Cadena final estática pública JSON_LOGIN =

“http://192.168.0.105/Login/login…”;

}

————————————-

Y luego finallay MainActivity.java

Inicie sesión utilizando el método POST

clase pública MainActivity extiende AppCompatActivity {

EditText inputemail, inputpwd;

Botón btnlogin;

ProgressDialog pd;

@Anular

vacío protegido onCreate (Bundle savedInstanceState) {

super.onCreate (savedInstanceState);

setContentView (R.layout.activity_main);

inputemail = (EditText) findViewById (http: //R.id.inputemail);

inputpwd = (EditText) findViewById (http: //R.id.inputpwd);

btnlogin = (Botón) findViewById (http: //R.id.btnlogin);

btnlogin.setOnClickListener (nueva View.OnClickListener () {

@Anular

public void onClick (Ver vista) {

nuevo JSONLOGIN (). execute (URLs.JSON_LOGIN);

}

});

}

La clase JSONLOGIN extiende AsyncTask

{

Cadena de correo electrónico = inputemail.getText (). ToString ();

String pass = inputpwd.getText (). ToString ();

Entero st = 0;

@Anular

nulo protegido en PreExecute () {

pd = nuevo ProgressDialog (MainActivity.this);

pd.setMessage (“Por favor, espere …”);

pd.setIndeterminate (falso);

pd.setCancelable (falso);

pd.setCanceledOnTouchOutside (falso);

pd.show ();

super.onPreExecute ();

}

@Anular

String protegido doInBackground (String… strings) {

tratar

{

Cadena url = cadenas [0];

List list = new ArrayList ();

list.add (nuevo BasicNameValuePair (“Correo electrónico”, correo electrónico));

list.add (nuevo BasicNameValuePair (“Contraseña”, pasar));

JSONObject parentObject = JSONParserClass.postjsonurl

(url, lista, “POST”);

JSONArray parantArr = parentObject.getJSONArray (“resultado1”);

para (int i = 0; i <parantArr.length (); i ++)

{

JSONObject finalobj = parantArr.getJSONObject (i);

st = Integer.parseInt (finalobj.getString (“Usuario”));

}

}

captura (excepción e)

{

e.printStackTrace ();

}

volver nulo;

}

@Anular

vacío protegido en PostExecute (String s) {

Toast.makeText (MainActivity.this, “S ==>” + s,

Toast.LENGTH_SHORT) .show ();

if (pd! = null && pd.isShowing ())

{

si (st == 1)

{

Toast.makeText (MainActivity.this, “LOGIN SUCCESS”,

Toast.LENGTH_SHORT) .show ();

}

más

{

Toast.makeText (MainActivity.this, “Falló …”,

Toast.LENGTH_SHORT) .show ();

}

pd.dismiss ();

}

super.onPostExecute (s);

}

}

}

———————————

Gracias..

Puede que funcione para ti …

Estos son de los que aprendí el análisis JSON. Espero que te sean de utilidad.

Tutorial de análisis de Android JSON – (Android HIVE)
Tutorial de Android JSON Parser – (Punto de tutorial)

Prueba esto

Convertir JSON a modelos

además,

Consumir APIs con Retrofit

Usa el mapeador de objetos de la biblioteca Jackson

ObjectMapper (jackson-databind 2.5.0 API)

Refiera esta respuesta.
Cómo analizar JSON en Android