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 .