Voir ci-dessous pour une utilisation facile Note d'utilisation de Jackson
Dans cet article, je voudrais résumer des exemples d'utilisation.
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);
Annotez les éléments que vous souhaitez ignorer comme indiqué ci-dessous.
@JsonIgnore
private String field1;
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){
...
}
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);
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);