jsonarray example java android json gson

java - example - jsonarray gson



Gson: convierte de Json a una ArrayList mecanografiada<T> (2)

Puede usar TypeToken para cargar la cadena json en un objeto personalizado.

logs = gson.fromJson(br, new TypeToken<List<JsonLog>>(){}.getType());

Usando la biblioteca Gson, ¿cómo convierto una cadena JSON en una ArrayList de una clase personalizada JsonLog ? Básicamente, JsonLog es una interfaz implementada por diferentes tipos de registros hechos por mi aplicación de Android (registros de SMS, registros de llamadas, registros de datos) y este ArrayList es una colección de todos ellos. Sigo recibiendo un error en la línea 6.

public static void log(File destination, JsonLog log) { Collection<JsonLog> logs = null; if (destination.exists()) { Gson gson = new Gson(); BufferedReader br = new BufferedReader(new FileReader(destination)); logs = gson.fromJson(br, ArrayList<JsonLog>.class); // line 6 // logs.add(log); // serialize "logs" again } }

Parece que el compilador no comprende que me refiero a una ArrayList mecanografiada. ¿Qué debo hacer?


Su muestra JSON es:

{ "status": "ok", "comment": "", "result": { "id": 276, "firstName": "mohamed", "lastName": "hussien", "players": [ "player 1", "player 2", "player 3", "player 4", "player 5" ] }

por lo tanto, si desea guardar una lista de arrays de módulos en sus SharedPrefrences, haga lo siguiente:

1- convertirá tu arraylist devuelta para el formato json usando este método

public static String toJson(Object jsonObject) { return new Gson().toJson(jsonObject); }

2- Guardarlo en las prefrencias compartidas

PreferencesUtils.getInstance(context).setString("players", toJson((.....ArrayList you want to convert.....)));

3- para recuperarlo en cualquier momento, obtener JsonString de las preferencias Compartidas como esa

String playersString= PreferencesUtils.getInstance(this).getString("players");

4- convertirlo nuevamente a una lista de arreglos

public static Object fromJson(String jsonString, Type type) { return new Gson().fromJson(jsonString, type); } ArrayList<String> playersList= (ArrayList<String>) fromJson(playersString, new TypeToken<ArrayList<String>>() { }.getType());

esta solución también es factible si quieres analizar ArrayList of Objects. Espero que te ayude utilizando la Biblioteca Gson .