J'ai créé un fichier Json où je voulais écrire un objet Java en tant qu'élément Array. J'utilise jackson.
try{
String json;
String phyPath = request.getSession().getServletContext().getRealPath("/");
String filepath = phyPath + "resources/" + "data.json";
File file = new File(filepath);
if (!file.exists()) {
System.out.println("pai nai");
file.createNewFile();
}
json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(story);
Files.write(new File(filepath).toPath(), Arrays.asList(json), StandardOpenOption.APPEND);
}
Ce n'est pas ce que je veux exactement. Il crée des données comme
{
"storyTitle" : "ttt",
"storyBody" : "tttt",
"storyAuthor" : "tttt"
}
{
"storyTitle" : "a",
"storyBody" : "a",
"storyAuthor" : "a"
}
J'ai juste besoin de créer un tableau de Json où j'ajoute un objet Java, les données devraient être comme ceci
[{
"storyTitle" : "ttt",
"storyBody" : "tttt",
"storyAuthor" : "tttt"
}
,{
"storyTitle" : "a",
"storyBody" : "a",
"storyAuthor" : "a"
}]
Jackson fournit des méthodes intégrées pour l'écriture de données JSON dans un fichier JSON . vous pouvez utiliser ce type de ligne de code pour cette
ObjectMapper mapper = new ObjectMapper();
ObjectWriter writer = mapper.writer(new DefaultPrettyPrinter());
writer.writeValue(new File("D:/cp/dataTwo.json"), jsonDataObject);
//new file(path of your file)
et jsonDataObject
est votre objet réel (i.e objet ou tableau) que vous voulez écrire dans un fichier.
Cela peut être fait en utilisant des tableaux:
ObjectMapper objectMapper = new ObjectMapper();
Student student = new Student();
student.setActive(false);
student.setFirstName("Kir");
student.setId(123);
student.setLastName("Ch");
objectMapper.enable(SerializationFeature.INDENT_OUTPUT);
try {
List<Student> listOfStudents = new ArrayList<>();
listOfStudents.add(student);
listOfStudents.add(student);
objectMapper.writeValue(new File("d:/temp/output.json"), listOfStudents);
} catch (IOException e) {
e.printStackTrace();
}
Le résultat sera comme ça:
[ {
"id" : 123,
"firstName" : "Kir",
"lastName" : "Ch",
"active" : false,
"address" : null,
"languages" : null
}, {
"id" : 123,
"firstName" : "Kir",
"lastName" : "Ch",
"active" : false,
"address" : null,
"languages" : null
} ]