J'ai un fichier JSON comme celui-ci:
[
{
"number": "3",
"title": "hello_world",
}, {
"number": "2",
"title": "hello_world",
}
]
Avant, lorsque les fichiers avaient un élément racine, j'utilisais:
Wrapper w = gson.fromJson(JSONSTRING, Wrapper.class);
code mais je ne peux pas penser comment coder la Wrapper
classe car l'élément racine est un tableau.
J'ai essayé d'utiliser:
Wrapper[] wrapper = gson.fromJson(jsonLine, Wrapper[].class);
avec:
public class Wrapper{
String number;
String title;
}
Mais je n'ai pas eu de chance. Sinon, comment puis-je lire ceci en utilisant cette méthode?
PS, je l'ai fait fonctionner en utilisant:
JsonArray entries = (JsonArray) new JsonParser().parse(jsonLine);
String title = ((JsonObject)entries.get(0)).get("title");
Mais je préférerais savoir comment le faire (si possible) avec les deux méthodes.
Wrapper[] data = gson.fromJson(jElement, Wrapper[].class);
fonctionne très bien pour moi.Réponses:
Le problème est causé par une virgule à la fin de (dans votre cas chaque ) objet JSON placé dans le tableau:
Si vous les supprimez, vos données deviendront
et
devrait bien fonctionner.
la source
jackson
bibliothèque et de ce commentaire, créer un tableau et l'envelopperArrays.asList(..)
est plus rapide que de créer une liste à l'aide de TypeRefence. Je ne l'ai pas testé avec unegson
bibliothèque, mais cela vaut peut-être la peine de le comparer.Semble bien fonctionner. Mais il y a une
,
virgule supplémentaire dans votre chaîne.la source
exemple d'appel:
la source
GsonUtils
est la classe où il a mis sa propretoList()
méthode.la source