Skip to content

Instantly share code, notes, and snippets.

@ques0942
Created May 10, 2018 16:30
Show Gist options
  • Save ques0942/9d81b3db57bcd3d9dfbb142d4167ae10 to your computer and use it in GitHub Desktop.
Save ques0942/9d81b3db57bcd3d9dfbb142d4167ae10 to your computer and use it in GitHub Desktop.
Jacksonよくある使い方メモ ref: https://qiita.com/ques0942/items/c4a20a21c9e1f0963591
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);
@JsonIgnore
private String field1;
@JsonProperty("fieldA")
private String field1;
@JsonProperty("fieldA")
public String getField1(){
...
}
// JsonPropertyで設定した値とコンフリクトするメソッドが存在する場合は
// 不要な方にJsonIgnoreを付与する。
@JsonIgnore
public String getFieldA(){
...
}
// この場合setterも合わせて定義しないとうまく相互変換できない
@JsonSetter("fieldA")
public void setField1(String field1){
...
}
private String sampleField;
ObjectMapper mapper = new ObjectMapper();
// 命名変更規則の設定
mapper.setPropertyNamingStrategy(PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES);
// 出力するJSON
mapper.enable(SerializationConfig.Feature.INDENT_OUTPUT);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment