Tengo un archivo JSON como este:
[
{
"number": "3",
"title": "hello_world",
}, {
"number": "2",
"title": "hello_world",
}
]
Antes, cuando los archivos tenían un elemento raíz, usaba:
Wrapper w = gson.fromJson(JSONSTRING, Wrapper.class);
código pero no puedo pensar en cómo codificar la Wrapper
clase ya que el elemento raíz es una matriz.
He intentado usar:
Wrapper[] wrapper = gson.fromJson(jsonLine, Wrapper[].class);
con:
public class Wrapper{
String number;
String title;
}
Pero no he tenido suerte. ¿De qué otra manera puedo leer esto usando este método?
PD Tengo esto para trabajar usando:
JsonArray entries = (JsonArray) new JsonParser().parse(jsonLine);
String title = ((JsonObject)entries.get(0)).get("title");
Pero preferiría saber cómo hacerlo (si es posible) con ambos métodos.
Wrapper[] data = gson.fromJson(jElement, Wrapper[].class);
funciona bien para mí.Respuestas:
El problema es causado por una coma al final de (en su caso cada uno ) objeto JSON colocado en la matriz:
Si los elimina, sus datos se convertirán en
y
debería funcionar bien.
fuente
jackson
biblioteca y este comentario, crear una matriz y envolverlaArrays.asList(..)
es más rápido que crear una lista usando TypeRefence. No lo probé con lagson
biblioteca, pero puede valer la pena compararlo.Parece funcionar bien. Pero hay una
,
coma adicional en su cadena.fuente
llamada de muestra:
fuente
GsonUtils
es la clase donde puso su propiotoList()
método.fuente