Gson – convierta de Json a una clase ArrayList <T>

Mediante la biblioteca Gson, ¿cómo convertir una cadena JSON a una ArrayList de una clase personalizada JsonLog ? Básicamente, JsonLog es una interfaz implementada por diferentes tipos de registros realizados 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 entiende que me estoy refiriendo a un ArrayList escrito. ¿Qué debo hacer?

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

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

Su formato de Json como esto:

{"Status": "ok", "comment": "", "resultado": 276, "firstName": "mohamed", "lastName": "hussien" 1 "," jugador 2 "," jugador 3 "," jugador 4 "," jugador 5 "]}}

Así que si quieres guardar arraylist de módulos en tu SharedPrefrences así:

1- convertirá su arraylist devuelto para el formato json usando este método

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

2- Guardarlo en prefreneces compartidos

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

3- para recuperarla en cualquier momento obtener JsonString de preferencias compartidas como ese

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

4- convertirlo de nuevo a la lista de matrices

 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 desea analizar ArrayList de objetos Espero que sea de ayuda con Gson Library .

  • OutOfMemoryError cuando se utiliza Gson para analizar una gran respuesta JSON
  • Devolver una gota con json
  • Cómo recibir valores json (por ejemplo: nombre de usuario y contraseña enviar como json desde una aplicación android) en Mvc 4 Web api
  • Extraer el cuerpo del mensaje de HttpResponse
  • Quiero google play store como scrollview
  • Gson .JsonSyntaxException - java.lang.NumberFormatException: Doble no válido: ""
  • Creación de JSONObject de cadena en JAVA (org.json)
  • JacksonParser databind y la causa principal "Encontró archivo duplicado para APK"?
  • Problemas con JSON y memoria
  • La aplicación se bloquea cuando ejecuto Proguard en GSON (que utiliza enum)
  • Json a clases de datos kotlin
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.