Formez et sérialisez bien avec Jackson

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.

Sérialiser sans formatage

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 façonner et nettoyer le format Partie 1

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 mettre en forme et nettoyer le format Partie 2

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

Formez et sérialisez bien avec Jackson
Qu'est-ce que Jackson?
Qu'est-ce que les microservices et les frameworks de microservices
Formez et sérialisez bien avec Jackson
[Java] Que sont les remplacements et les surcharges?
JSON avec Java et Jackson Part 2 XSS mesures
Comment sérialiser et désérialiser le type LocalDateTime avec GSON
[Java] Communication JSON avec jackson
URLSession avec URLSession et Combine normalement