studio recorrer jsonarray guardar example datos crear consumir array android json

recorrer - Cómo analizar un objeto JSON en Android



json array android studio (4)

Al final lo resolví usando JSONObject.get lugar de JSONObject.getString y luego JSONObject.getString test a una String .

private void saveData(String result) { try { JSONObject json= (JSONObject) new JSONTokener(result).nextValue(); JSONObject json2 = json.getJSONObject("results"); test = (String) json2.get("name"); } catch (JSONException e) { e.printStackTrace(); } }

Estoy teniendo problemas para extraer valores de un objeto JSON. Aquí está mi código

try { JSONObject json = new JSONObject(result); JSONObject json2 = json.getJSONObject("results"); test = json2.getString("name"); } catch (JSONException e) { e.printStackTrace(); }

test se declara como una String . Cuando el código se ejecuta, muestra null . Si json2 sobre json2 en modo de depuración, puedo ver todos los valores y nombres dentro del objeto.

También intenté

test = json2.length();

Esta test = 0 devuelta test = 0 . Incluso cuando json2 objeto json2 , puedo leer los valores dentro del objeto.

Aquí hay un ejemplo de una cadena JSON que usaré.

{ "caller":"getPoiById", "results": { "indexForPhone":0, "indexForEmail":"NULL", "indexForHomePage":"NULL", "indexForComment":"NULL", "phone":"05137-930 68", "cleanPhone":"0513793068", "internetAccess":"2", "overnightStay":"2", "wasteDisposal":"2", "toilet":"2", "electricity":"2", "cran":"2", "slipway":"2", "camping":"2", "freshWater":"2", "fieldNamesWithValue":["phone"], "fieldNameTranslations": ["Telefon"], "id":"1470", "name":"Marina Rasche Werft GmbH & Co. KG", "latitude":"52.3956107286487", "longitude":"9.56583023071289" } }



En su formato JSON, no tiene un objeto JSON inicial

Me gusta :

{ "info" : <!-- this is starting JSON object --> { "caller":"getPoiById", "results": { "indexForPhone":0, "indexForEmail":"NULL", . . } } }

Por encima de Json comienza con info como objeto JSON. Entonces al ejecutar:

JSONObject json = new JSONObject(result); // create JSON obj from string JSONObject json2 = json.getJSONObject("info"); // this will return correct

Ahora, podemos acceder al campo de result :

JSONObject jsonResult = json2.getJSONObject("results"); test = json2.getString("name"); // returns "Marina Rasche Werft GmbH & Co. KG"

Creo que faltaba esto y el problema se solucionó mientras usamos JSONTokener como respuesta tuya.

Tu respuesta es muy buena Solo creo que agregué esta información, así que respondí

Gracias


JSONArray jsonArray = new JSONArray(yourJsonString); for (int i = 0; i < jsonArray.length(); i++) { JSONObject obj1 = jsonArray.getJSONObject(i); JSONArray results = patient.getJSONArray("results"); String indexForPhone = patientProfile.getJSONObject(0).getString("indexForPhone")); }

Cambie a JSONArray, luego convierta a JSONObject.