Comment enregistrer des données avec gson dans un fichier json?
Dans mon application web, je réussir dans l'affichage des données en tableau html à l'aide de mybatis. Maintenant, je veux enregistrer les enregistrements de la table Mysql dans un fichier json et de créer une gamme d'utilisateurs, j'ai utilisé Gson, le problème est que juste un enregistrement enregistrées dans le fichier. Merci.
Voici le résultat dans file.json
:
{"data":
[
{"id":2,"Name":"Mike"}
]
}
servlet.java
SqlSession session = MyBatisSqlSessionFactory.getSession();
List<User> users = session.selectList("dao.UserDao.findAll");
for (User u : users) {
Gson gson = new Gson();
try {
JsonWriter writer = new JsonWriter(new FileWriter("C:\\file.json"));
writer.beginObject();
writer.name("data");
writer.beginArray();
writer.beginObject();
writer.name("id").value(t.getId());
writer.name("name").value(t.getNom());
writer.endObject();
writer.endArray();
writer.endObject();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
session.close();
source d'informationauteur mak_doni
Vous devez vous connecter pour publier un commentaire.
Vous écrire tous les utilisateurs dans le même fichier
C:\\file.json
il suffit donc de la dernière itération de la boucle enregistrée.Vous pouvez convertir l'objet
List<User>
en json et de l'écrire une fois (pas besoin de boucle)Exemple:
J'étais auparavant à l'aide de outputStream.writeObject et Serializable par défaut writer/reader pour enregistrer les données de l'objet. En raison de problèmes avec le code de la durabilité, j'ai été après quelque chose d'autre. C'est le résultat. Que BufferedWriter est obligatoire, sinon la vitesse d'écriture des gouttes de 8 fois. Notez que l'UTF-8 de la déclaration qui est encodage par défaut de Json. Pas sûr que de ne pas déclarer qu'il est sécuritaire.
Exemple:
où par exemple de Type:
Solution rapide à votre code:
Toutefois, dans le cas de votre classe ressemble à ceci:
Alors vous n'avez pas besoin de code de la carte en tant que Gson est capable de générer automatiquement le code JSON pour une classe qui n'a que des primitives (entiers, Chaînes de caractères, etc.). Ainsi, votre code comme @roy-shmuli mais seulement si vous omettez les données et de ne garder que le tableau sous la forme d'une Liste peut être complètement généré sans adaptateur. Le code JSON généré devrait ressembler à ceci:
Espère que cela aide pour les débutants.