[JAVA] Notes d'utilisation courantes de Jackson

Tout d'abord

Voir ci-dessous pour une utilisation facile Note d'utilisation de Jackson

Dans cet article, je voudrais résumer des exemples d'utilisation.

Exemple de 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()};
}

Générer du texte JSON à partir de DTO

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

Générer ObjectNode à partir de DTO

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

Mettre à jour DTO en fonction de la valeur ObjectNode

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

Ignorer les éléments inutiles

Annotez les éléments que vous souhaitez ignorer comme indiqué ci-dessous.

@JsonIgnore
private String field1;

Changer le nom de la clé JSON

Ajoutez une annotation à l'élément que vous souhaitez modifier comme suit.

@JsonProperty("fieldA")
private String field1;

Dans un tel cas, ce serait {"fieldA": "\ <field1 value >"}.

@JsonProperty peut également être appliqué aux méthodes.

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

//S'il y a une méthode qui entre en conflit avec la valeur définie dans JsonProperty
//Donnez Json Ignore à ceux qui n'en ont pas besoin.
@JsonIgnore
public String getFieldA(){
...
}

//Dans ce cas, la conversion mutuelle ne peut être bien effectuée que si le poseur est également défini.
@JsonSetter("fieldA")
public void setField1(String field1){
...
}

Sortez le champ de cas de chameau en JSON dans le cas de serpent.

Si les champs suivants sont définis, S'il est sorti tel quel, le nom de champ sorti vers JSON sera un cas de chameau.

private String sampleField;

Vous pouvez également modifier le nom du champ en utilisant @JsonProperty, Utilisez la stratégie de dénomination de propriété si vous souhaitez convertir tous les champs selon une règle spécifique. Pour le cas de chameau ⇒ cas de serpent, il existe une logique de conversion par défaut qui peut être utilisée.

ObjectMapper mapper = new ObjectMapper();
//Renommer les paramètres de règle
mapper.setPropertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES);

Format lors de la sortie de JSON

Si vous souhaitez formater la chaîne de caractères JSON de sortie, modifiez le paramètre du mappeur. Par exemple, pour définir un retrait approprié, procédez comme suit.

//JSON en sortie
mapper.enable(SerializationConfig.Feature.INDENT_OUTPUT);

Recommended Posts

Notes d'utilisation courantes de Jackson
Notes d'utilisation de base pour Jackson
Comment utiliser Thymeleaf avec Spring Boot