Siehe unten für eine einfache Verwendung Jackson-Verwendungsprotokoll
In diesem Artikel möchte ich Verwendungsbeispiele zusammenfassen.
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()};
}
SampleDTO dto = new SampleDTO();
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(dto);
SampleDTO dto = new SampleDTO();
ObjectMapper mapper = new ObjectMapper();
ObjectNode jsonNode = mapper.valueToTree(dto);
SampleDTO dto = new SampleDTO();
ObjectMapper mapper = new ObjectMapper();
ObjectReader reader = mapper.readerForUpdating(dto);
reader.readValue(json);
Kommentieren Sie die Elemente, die Sie ignorieren möchten, wie unten gezeigt.
@JsonIgnore
private String field1;
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){
...
}
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);
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);