Buscamos en diferentes espacios para así mostrarte la respuesta para tu inquietud, si tienes alguna duda puedes dejarnos un comentario y respondemos porque estamos para servirte.
Solución:
Consulte openRawResource. Algo como esto debería funcionar:
InputStream is = getResources().openRawResource(R.raw.json_file);
Writer writer = new StringWriter();
char[] buffer = new char[1024];
try
Reader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
int n;
while ((n = reader.read(buffer)) != -1)
writer.write(buffer, 0, n);
finally
is.close();
String jsonString = writer.toString();
Kotlin ahora es el idioma oficial de Android, así que creo que esto sería útil para alguien.
val text = resources.openRawResource(R.raw.your_text_file)
.bufferedReader().use it.readText()
Usé la respuesta de @ kabuko para crear un objeto que se carga desde un archivo JSON, usando Gson, desde los Recursos:
package com.jingit.mobile.testsupport;
import java.io.*;
import android.content.res.Resources;
import android.util.Log;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
/**
* An object for reading from a JSON resource file and constructing an object from that resource file using Gson.
*/
public class JSONResourceReader
// === [ Private Data Members ] ============================================
// Our JSON, in string form.
private String jsonString;
private static final String LOGTAG = JSONResourceReader.class.getSimpleName();
// === [ Public API ] ======================================================
/**
* Read from a resources file and create a @link JSONResourceReader object that will allow the creation of other
* objects from this resource.
*
* @param resources An application @link Resources object.
* @param id The id for the resource to load, typically held in the raw/ folder.
*/
public JSONResourceReader(Resources resources, int id)
InputStream resourceReader = resources.openRawResource(id);
Writer writer = new StringWriter();
try
BufferedReader reader = new BufferedReader(new InputStreamReader(resourceReader, "UTF-8"));
String line = reader.readLine();
while (line != null)
writer.write(line);
line = reader.readLine();
catch (Exception e)
Log.e(LOGTAG, "Unhandled exception while using JSONResourceReader", e);
finally
try
resourceReader.close();
catch (Exception e)
Log.e(LOGTAG, "Unhandled exception while using JSONResourceReader", e);
jsonString = writer.toString();
/**
* Build an object from the specified JSON resource using Gson.
*
* @param type The type of the object to build.
*
* @return An object of type T, with member fields populated using Gson.
*/
public T constructUsingGson(Class type)
Gson gson = new GsonBuilder().create();
return gson.fromJson(jsonString, type);
Para usarlo, haría algo como lo siguiente (el ejemplo está en un InstrumentationTestCase
):
@Override
public void setUp()
// Load our JSON file.
JSONResourceReader reader = new JSONResourceReader(getInstrumentation().getContext().getResources(), R.raw.jsonfile);
MyJsonObject jsonObj = reader.constructUsingGson(MyJsonObject.class);
Aquí tienes las comentarios y calificaciones
Más adelante puedes encontrar las acotaciones de otros desarrolladores, tú de igual forma tienes el poder dejar el tuyo si lo deseas.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)