Jackson 라이브러리
- 객체를 JSON 형식으로 변환해준다.
- 프로퍼티 즉, Getter, Setter를 기준으로 작동한다.
- Java의 프로퍼티는 보통 Getter와 Setter의 이름 명명 규칙으로 정해진다.
- Jackson의 매핑을 프로퍼티가 아닌 멤버변수로 하고 싶다면 @JsonProperty를 사용한다.
public class Person {
@JsonProperty("name")
private String myName = "Mommoo";
}
// {"name": "Mommoo"}
- @JsonAutoDetect로 매핑 법칙을 바꿀 수 있다.
// 멤버 변수 뿐만 아니라, 기본 정책인 Getter 역시 데이터 매핑이 진행된다.
@JsonAutoDetect(fiedlVisibility = JsonAutoDetect.Visibility.ANY)
public class Person {
private String myName = "Mommoo";
public String getJob() {
return "Developer";
}
}
- Getter를 제외하고 싶다면 @JsonIgnore을 쓰면 된다.
@JsonAutoDetect(fiedlVisibility = JsonAutoDetect.Visibility.ANY)
public class Person {
private String myName = "Mommoo";
@JsonIgnore
public String getJob() {
return "Developer";
}
}
- Getter 정책으로 private만 데이터 바인딩에 제외할 수 있다.
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NON_PRIVATE)
public class Person {
private String myName = "Mommoo";
public String getJob() {
return "Developer";
}
}
- 특정 데이터 상태인 경우를 제외하고 싶다면 @JsonInclude 사용
// 클래스 전반적으로 제외하고 싶다면, 클래스 위에 선언
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Person {
private String myName = "Mommoo";
public String getJob() {
return "Developer";
}
}
// 특정 프로퍼티만 제외하고 싶다면, 해당 프로퍼티 위에 선언
public class Person {
private String myName = "Mommoo";
@JsonInclude(JsonInclude.Include.NON_NULL)
public String getJob() {
return "Developer";
}
}
'Springboot' 카테고리의 다른 글
Spring Validation Annotation 총정리 (0) | 2020.01.14 |
---|---|
HTTP Method - PUT, PATCH 차이점 (0) | 2019.10.22 |
생성시간, 수정시간 자동화(JPA Auditing) (0) | 2019.10.22 |
HTTP 클라이언트 HTTPie (0) | 2019.07.26 |
Spring Boot에 Swagger 적용하기 (7) | 2019.07.09 |
댓글