Quand je veux sérialiser en JSON avec Java, j'utilise souvent Jackson car JSON-B n'est pas assez puissant, mais j'oublie toujours comment l'écrire, alors prenez note.
Un modèle qui sérialise sans formatage pour l'échange de données. Habituellement ceci.
var item = Map.of("parent", Map.of("child", List.of("a", "b", "c")));
var json = new ObjectMapper().writeValueAsString(item);
résultat
{"parent":{"child":["a","b","c"]}}
Si vous souhaitez formater la sortie d'écran ou le fichier de configuration. Utilisez INDENT_OUTPUT
var item = Map.of("parent", Map.of("child", List.of("a", "b", "c")));
var mapper = new ObjectMapper();
mapper.enable(SerializationFeature.INDENT_OUTPUT);
var json = mapper.writeValueAsString(item);
résultat
{
"parent" : {
"child" : [ "a", "b", "c" ]
}
}
Si vous souhaitez afficher un tableau d'éléments avec des sauts de ligne. Pour quand l'élément est long. Utilisez PrettyPrinter et SYSTEM_LINEFEED_INSTANCE.
var item = Map.of("parent", Map.of("child", List.of("a", "b", "c")));
var printer = new DefaultPrettyPrinter();
printer.indentArraysWith(DefaultIndenter.SYSTEM_LINEFEED_INSTANCE);
var json = new ObjectMapper().writer(printer).writeValueAsString(item);
résultat
{
"parent" : {
"child" : [
"a",
"b",
"c"
]
}
}
Recommended Posts