Saltar al contenido

Gson: convierte de Json a una ArrayList escrita

Esta división ha sido evaluado por nuestros especialistas así se asegura la exactitud de nuestra esta división.

Solución:

Puede usar TypeToken para cargar el json string en un objeto personalizado.

logs = gson.fromJson(br, new TypeToken>().getType());

Documentación:

Representa un tipo genérico. T.

Java aún no proporciona una forma de representar tipos genéricos, por lo que esta clase sí lo hace. Obliga a los clientes a crear una subclase de esta clase que permite recuperar la información de tipo incluso en tiempo de ejecución.

Por ejemplo, para crear un tipo literal para Listpuede crear una clase interna anónima vacía:

TypeToken> list = new TypeToken>() ;

Esta sintaxis no se puede utilizar para crear literales de tipo que tengan parámetros comodín, como Class o List.

Kotlin:

Si necesitas hacerlo en kotlin puedes hacerlo así:

val myType = object : TypeToken>() .type
val logs = gson.fromJson>(br, myType)

O puede ver esta respuesta para varias alternativas.

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"
    ]

entonces, si desea guardar una lista de matrices de módulos en sus SharedPrefrences, entonces:

1- convertirá su lista de matrices devuelta para el formato json usando este método

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

2- Guardarlo en preferencias compartidas

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

3- para recuperarlo en cualquier momento, obtenga JsonString de las preferencias compartidas como esa

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

4- convertirlo de nuevo a array lista

public static Object fromJson(String jsonString, Type type) 
    return new Gson().fromJson(jsonString, type);


ArrayList playersList= (ArrayList) fromJson(playersString,
                    new TypeToken>() 
                    .getType());

esta solución también es factible si desea analizar ArrayList of Objects Espero que lo ayude utilizando Gson Library.

Si quieres usar Arrays, es bastante simple.

logs = gson.fromJson(br, JsonLog[].class); // line 6

Proporcionar la JsonLog como un array JsonLog[].class

Sección de Reseñas y Valoraciones

Si haces scroll puedes encontrar las notas de otros programadores, tú asimismo puedes mostrar el tuyo si lo deseas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *