Incluir archivo .json local en el proyecto Eclipse Android

Tengo un archivo .json local. No quiero que esté en un servidor, solo quiero que se incluya en mi aplicación. Traté de pegarlo directamente en Eclipse en mi proyecto, pero tengo una FileNotFoundException, también intenté pegarlo en la carpeta de espacio de trabajo en el Explorador de Windows / Finder y obtuve la misma excepción. ¿Dónde debo ponerlo?

¡Gracias!

Debe poner el archivo en el directorio /assets o /res/raw de su proyecto de Android. A partir de ahí, se puede recuperar con: Context.getResources().openRawResource(R.raw.filename) o Context.getResources().getAssets().open("filename") .

Poner el archivo json en la carpeta de activos, he utilizado este método como este

 public static String jsonToStringFromAssetFolder(String fileName,Context context) throws IOException { AssetManager manager = context.getAssets(); InputStream file = manager.open(fileName); byte[] data = new byte[file.available()]; file.read(data); file.close(); return new String(data); } 

Mientras analizamos podemos usar el método como:

 String jsondata= jsonToStringFromAssetFolder(your_filename, your_context); jsonFileToJavaObjectsParsing(jsondata); // json data to java objects implementation 

Más información: Blog de Prativa

Coloque el archivo en la carpeta de activos. Puede utilizar AssetManager open (String fileName) para leer el archivo.

Bajo / activos en su carpeta de proyecto. Si no tienes uno, hazlo.

Copiar activo en almacenamiento local

Tenía una necesidad muy similar. Tenía un archivo de plantilla de etiqueta que necesitaba para proporcionar una configuración de impresora Bluetooth por lo que lo incluyó en mi directorio de activos y lo copió en el almacenamiento interno para su uso posterior:

 private static final String LABEL_TEMPLATE_FILE_NAME = "RJ_4030_4x3_labels.bin"; InputStream inputStreamOfLabelTemplate = getAssets().open( LABEL_TEMPLATE_ASSET_PATH ); labelTemplateFile = new File( getFilesDir() + LABEL_TEMPLATE_FILE_NAME ); copyInputStreamToFile( inputStreamOfLabelTemplate, labelTemplateFile ); printer.setCustomPaper( labelTemplateFile.getAbsolutePath() ); 

copyInputStreamToFile Función

 // Copy an InputStream to a File. // private void copyInputStreamToFile(InputStream in, File file) { try { OutputStream out = new FileOutputStream(file); byte[] buf = new byte[1024]; int len; while((len=in.read(buf))>0){ out.write(buf,0,len); } out.close(); in.close(); } catch (Exception e) { e.printStackTrace(); } } 
  • ¿Cómo solucionar el error en org.json.JSONException?
  • Org.codehaus.jackson.JsonParseException: carácter inesperado ('' (código 65279 / 0xfeff)): se espera un valor válido
  • Werid ClassCastException en TreeMap.containsKey ()
  • Android usando MSGPack Core y Jackson Mapper - clase de decodificación variable de tipo desconocido
  • Recuperación de datos de firebase
  • ¿Cuál es la manera más rápida de analizar una cadena JSON en una tabla SQLite?
  • Json Parsing de Url en Android, no funciona
  • Cómo analizar este JSON Array en android
  • Mantener un campo JSON como String al deserializar usando Jackson
  • Problema de desplazamiento Infinito Infinito de RecyclerView
  • Servidor ByetHost que pasa valores html "Comprobación de su navegador" con JSON String
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.