Análisis de JSON en android: desde la carpeta de recursos

Tengo un archivo de texto guardado en la carpeta res / raw en eclipse. Estoy mostrando aquí el contenido de ese archivo:

{ "Categories": { "Category": [ { "cat_id": "3", "cat_name": "test" }, { "cat_id": "4", "cat_name": "test1" }, { "cat_id": "5", "cat_name": "test2" }, { "cat_id": "6", "cat_name": "test3" } ] } } 

Quiero analizar esta matriz JSON. ¿Cómo puedo hacer esto?

¿Puede alguien por favor me ayude?

Gracias por adelantado.

 //Get Data From Text Resource File Contains Json Data. InputStream inputStream = getResources().openRawResource(R.raw.json); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); int ctr; try { ctr = inputStream.read(); while (ctr != -1) { byteArrayOutputStream.write(ctr); ctr = inputStream.read(); } inputStream.close(); } catch (IOException e) { e.printStackTrace(); } Log.v("Text Data", byteArrayOutputStream.toString()); try { // Parse the data into jsonobject to get original data in form of json. JSONObject jObject = new JSONObject( byteArrayOutputStream.toString()); JSONObject jObjectResult = jObject.getJSONObject("Categories"); JSONArray jArray = jObjectResult.getJSONArray("Category"); String cat_Id = ""; String cat_name = ""; ArrayList<String[]> data = new ArrayList<String[]>(); for (int i = 0; i < jArray.length(); i++) { cat_Id = jArray.getJSONObject(i).getString("cat_id"); cat_name = jArray.getJSONObject(i).getString("cat_name"); Log.v("Cat ID", cat_Id); Log.v("Cat Name", cat_name); data.add(new String[] { cat_Id, cat_name }); } } catch (Exception e) { e.printStackTrace(); } 

Este es su código:

 String fileContent; JSONObject jobj = new JSONObject(fileContent); JSONObject categories = jobj.getJSONObject("Categories"); JSONArray listCategory = categories.getJSONArray("Category"); for( int i = 0; i < listCategory.length(); i++ ) { JSONObject entry = listCategory.getJSONObject(i); //DO STUFF } 
  1. Léalo en una String
  2. Crear un JSONArray con la String recuperada
  3. Utilice los métodos get () para recuperar sus datos

Marco Android tiene un ayudante JsonReader en el paquete android.util

Funciona como un encanto, presentado gran ejemplo. En el primer bloque pequeño error con el cuadrado ausente '}':

 public List readJsonStream(InputStream in) throws IOException { JsonReader reader = new JsonReader(new InputStreamReader(in, "UTF-8")); try { return readMessagesArray(reader); } finally { reader.close(); } } 

También existe una gran biblioteca de google-devs GSON , que te da la posibilidad de mapear la estructura json directamente al modelo Java: echa un vistazo aquí

  1. Cargue la cadena JASON a una variable de la carpeta Res foler
  2. Analizarlo en su programa

Estoy seguro de que google le ayudará mucho en este sentido.

En fin, buena suerte.

  • NoMethodError en el objeto de ejecución estándar de Android
  • Recepción del cuerpo de respuesta en Retrofit2 pero onResponse no se recibe
  • Cordova / Phonegap / Ionic App - tienda local de imágenes remotas
  • Android: Json cadena con espacios da "objeto no terminado en" excepción
  • El archivo google-services.json falta en la carpeta raíz del módulo. El complemento de servicios de Google no puede funcionar sin él
  • Actualizar City Spinner con notifyDataSetChanged después de seleccionar estado
  • Análisis de JSON con Retrofit
  • ArrayAdapter: Los datos de Json se enviarán a spinner
  • ¿Cómo puedo poner tipo genérico para TypeToken de Gson?
  • Diseño como la aplicación HotStar
  • Optimización del análisis de JSON en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.