Objeto de matriz Iterate JSON

Soy nuevo al concepto entero de java así que si el título es incorrecto, por favor desnuda conmigo. Estoy consultando y obtener una cadena json devuelto, por el bien de este ejemplo voy a publicar un ejemplo. Estoy tratando de averiguar cómo iba a cavar a través de la matriz de valores y encontrar que está marcado como predeterminado.

Ejemplo JSON

{ "id": "333706819617", "guid": "4aCdriCG0WvfYEUkFf8_xqQEFxgwgNU8", "title": "Test entry", "author": "", "description": "Desc", "added": 1411702963000, "content": [ { "audioChannels": 2, "audioSampleRate": 44100, "bitrate": 281656, "checksums": { "md5": "70DF3E21131F9F02C3F0A74F3664AB73" }, "contentType": "audio", "duration": 43.258, "expression": "full", "fileSize": 1522986, "frameRate": 0.0, "format": "AAC", "height": 288, "isDefault": false, "language": "en", "sourceTime": 0.0, "url": "http://example.com/dZiASoxchRyS", "width": 352 }, { "audioChannels": 2, "audioSampleRate": 44100, "bitrate": 160000, "checksums": { "md5": "3AC622D31B9DED37792CC7FF2F086BE6" }, "contentType": "audio", "duration": 43.206, "expression": "full", "fileSize": 866504, "frameRate": 0.0, "format": "MP3", "height": 0, "isDefault": false, "language": "", "sourceTime": 0.0, "url": "http://example.com/59M_PSFgGGXE", "width": 0 } ], "thumbnails": [ { "audioChannels": 0, "audioSampleRate": 0, "bitrate": 0, "checksums": { "md5": "BE8C98A07B3FE9020BFA464C42112999" }, "contentType": "image", "duration": 0.0, "expression": "full", "fileSize": 20379, "frameRate": 0.0, "format": "JPEG", "height": 256, "isDefault": true, "language": "", "sourceTime": 0.0, "url": "http://img.example.com/waveform.jpg", "width": 256 } ] } 

Tomo la cadena de JSON y la convierto de nuevo en un JSONObject

 JSONObject mediaObject = new Gson().fromJson(mediaString, JSONObject.class); String content = mediaObject.optString("content"); 

Cuando envío content , devuelve lo siguiente.

 {values=[{nameValuePairs={audioChannels=2.0, audioSampleRate=44100.0, bitrate=281656.0, checksums={nameValuePairs={md5=70DF3E21131F9F02C3F0A74F3664AB73}}...... 

¿Cómo paso correctamente a través de los valores de contenido y encontrar el valor de isDefault ? En el ejemplo JSON no hay ningún contenido donde isDefault = true por lo que el valor predeterminado para el primer objeto.

Parece que sólo puedo orientar los valores como cadena, ¿tengo que emitir content como un JSONArray ?

Edit: Parece que no puedo convertir mediaObject.content en un JSONArray. mediaObject.optJSONArray("content") devuelve null. También he tratado de obtenerlo como una cadena de convertir en un JSONArray sin prevaleciente.

Edit 2: Encontré el problema con los datos, cuando estaba analizando el json con gson, estaba jugando con los datos finales outputted.

Así que cambié de new Gson().toJson(jsonObject); A jsonObject.toString()) y ahora podría apuntar los arrays usando optJSONArray . Para obtener los datos de nuevo en un JSONObject, utilicé JSONObject mediaObject = new JSONObject(mediaString);

GSON estaba alterando los datos

En lugar de extraer el valor de cadena del contenido de su JSONObject, puede obtener un JSONArray en su lugar

 JSONArray content = mediaObject.getJSONArray("content"); 

Ahora usted puede hacer un bucle a través de los objetos en su matriz con un bastante convencional para el bucle

 for(int i = 0; i < content.length(); i++) { JSONObject mediaItem = content.getJSONObject(i); boolean itemIsDefault = mediaItem.getBoolean("isDefault"); } 

Aquí están los enlaces a todos los métodos JSONObject y JSONArray

No puedes simplemente

 JSONObject mJson = new JSONObject(inputString); 

¿Por qué estás usando Gson?

  • Creación de JSONObject de cadena en JAVA (org.json)
  • Creación de un menú desplegable desde un archivo .json
  • ¿Cómo obtener datos Instagram de un usuario en Android?
  • cómo pasar los parámetros a RESTlet webservice de android?
  • ¿Cómo puede Retrofit 2.0 analizar objeto JSON anidado?
  • Archivo JSON VS SQLite android
  • Obtenga String de json con un objeto json anidado y matrices json anidadas con varios objetos json, en Android
  • Importa datos de JSON o XML feed y crea una lista en Android
  • Extraño error de API de IAP de lotes de Google Play
  • Cuando se utiliza JSON en Fragmentos, la aplicación no responde en Android Development
  • Tiempo de viaje entre dos ubicaciones en Google Map Android API V2
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.