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
List
puede 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>
oList extends CharSequence>
.
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.