Mit Jackson gut formen und serialisieren

Wenn ich mit Java nach JSON serialisieren möchte, verwende ich häufig Jackson, weil JSON-B nicht leistungsfähig genug ist, aber ich vergesse immer, wie man es schreibt. Machen Sie sich also eine Notiz.

Ohne Formatierung serialisieren

Ein Muster, das ohne Formatierung für den Datenaustausch serialisiert wird. Normalerweise das.

var item = Map.of("parent", Map.of("child", List.of("a", "b", "c")));
var json = new ObjectMapper().writeValueAsString(item);

Ergebnis

{"parent":{"child":["a","b","c"]}}

Wenn Sie das Format Teil 1 formen und reinigen möchten

Wenn Sie für die Bildschirmausgabe oder Konfigurationsdatei formatieren möchten, verwenden Sie 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);

Ergebnis

{
  "parent" : {
    "child" : [ "a", "b", "c" ]
  }
}

Wenn Sie das Format Teil 2 formen und reinigen möchten

Wenn Sie ein Array von Elementen mit Zeilenumbrüchen anzeigen möchten. Denn wenn das Element lang ist. Verwenden Sie PrettyPrinter und 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);

Ergebnis

{
  "parent" : {
    "child" : [
      "a",
      "b",
      "c"
    ]
  }
}

Recommended Posts

Mit Jackson gut formen und serialisieren
Was ist Jackson?
Was sind Microservices und Microservices Frameworks?
Mit Jackson gut formen und serialisieren
[Java] Was sind Überschreibungen und Überladungen?
JSON mit Java und Jackson Teil 2 XSS-Maßnahmen
So serialisieren und deserialisieren Sie den LocalDateTime-Typ mit GSON
[Java] JSON-Kommunikation mit Jackson
URLSession mit URLSession und Normal kombinieren