S E P H ' S

JsonIgnore, JsonProperty 본문

Programing & Coding/Spring

JsonIgnore, JsonProperty

yoseph0310 2021. 7. 24. 20:30

JsonIgnore

@JsonIgnore을 사용하면 그 객체가 Json형태로 전달될 때 드러나지 않게 된다.

@JsonIgnore
String userPwd;

JsonProperty

Java에서는 보통 카멜케이스로 변수를 작성한다. 다른 케이스로 변수를 사용하여 json형태로 전달할 때 사용한다. 

예를 들어, userId를 user_id로 전달하고 싶을 때, 다음과 같이 작성하면 된다.

@JsonProperty(user_id)
String UserId;

 

 

JPA를 사용하면서 예를 들어, user 도메인에 비밀번호와 관련된 컬럼에 JsonIgnore를 사용하게 되면 비밀번호 필드에 접근하지 못하는 오류가 발생한다. 이런 경우를 극복하기 위해 JsonProperty에 Access 타입을 지정해주면 해결할 수 있다.

@JsonIgnore
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
String userPwd;

Access 타입으로 다음과 같은 접근제어도 가능하다.

 

- AUTO

- READ_ONLY

- WRITE_ONLY

- READ_WRITE

 

이 어노테이션들은 Getter / Setter를 자체적으로 활용하는 Lombok을 사용할 때 가장 간편한 것 같다.