[JAVA] Allgemeine Hinweise zur Verwendung von Jackson

Als allererstes

Siehe unten für eine einfache Verwendung Jackson-Verwendungsprotokoll

In diesem Artikel möchte ich Verwendungsbeispiele zusammenfassen.

Beispiel DTO

public class SampleDTO {
    private String field1;
    private List<String> field2;
    private SomeClass field3;

    public String getField1(){return field1};
    public List<String> getField2(){return field2};
    public SomeClass getField3(){return field3};
    public String getField3Text(){return field3.getText()};
}

Generieren Sie JSON-Text aus DTO

SampleDTO dto = new SampleDTO();
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(dto);

Generieren Sie ObjectNode aus DTO

SampleDTO dto = new SampleDTO();
ObjectMapper mapper = new ObjectMapper();
ObjectNode jsonNode = mapper.valueToTree(dto);

Aktualisieren Sie das DTO basierend auf dem ObjectNode-Wert

SampleDTO dto = new SampleDTO();
ObjectMapper mapper = new ObjectMapper();
ObjectReader reader = mapper.readerForUpdating(dto);
reader.readValue(json);

Ignorieren Sie unnötige Elemente

Kommentieren Sie die Elemente, die Sie ignorieren möchten, wie unten gezeigt.

@JsonIgnore
private String field1;

Ändern Sie den JSON-Schlüsselnamen

Fügen Sie dem Element, das Sie ändern möchten, wie folgt eine Anmerkung hinzu.

@JsonProperty("fieldA")
private String field1;

In einem solchen Fall wäre es {"fieldA": "\ <field1 value >"}.

@JsonProperty kann auch auf Methoden angewendet werden.

@JsonProperty("fieldA")
public String getField1(){
...
}

//Wenn es eine Methode gibt, die mit dem in JsonProperty festgelegten Wert in Konflikt steht
//Gib Json Ignore denen, die es nicht brauchen.
@JsonIgnore
public String getFieldA(){
...
}

//In diesem Fall kann die gegenseitige Umwandlung nur dann gut durchgeführt werden, wenn auch der Setter definiert ist.
@JsonSetter("fieldA")
public void setField1(String field1){
...
}

Geben Sie das Kamelfallfeld im Schlangenfall an JSON aus.

Wenn die folgenden Felder definiert sind, Wenn es so ausgegeben wird, wie es ist, ist der an JSON ausgegebene Feldname ein Kamelfall.

private String sampleField;

Sie können den Feldnamen auch mit @JsonProperty ändern. Verwenden Sie die Strategie zur Benennung von Eigenschaften, wenn Sie alle Felder nach einer bestimmten Regel konvertieren möchten. Für Kamelfall ⇒ Schlangenfall gibt es eine Standardkonvertierungslogik, die verwendet werden kann.

ObjectMapper mapper = new ObjectMapper();
//Regeleinstellungen umbenennen
mapper.setPropertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES);

Format bei der Ausgabe von JSON

Wenn Sie die JSON-Ausgabezeichenfolge formatieren möchten, ändern Sie die Mapper-Einstellung. Gehen Sie beispielsweise wie folgt vor, um einen geeigneten Einzug festzulegen.

//JSON zur Ausgabe
mapper.enable(SerializationConfig.Feature.INDENT_OUTPUT);

Recommended Posts

Allgemeine Hinweise zur Verwendung von Jackson
Grundlegende Verwendungshinweise für Jackson
Verwendung von Thymeleaf mit Spring Boot