상세 컨텐츠

본문 제목

JSONProperty

JAVA/JAVA basic

by 영공쁘이 2023. 1. 25. 19:12

본문

1. JSONProperty 사용이유

2. 사용방법

 

1. JSONProperty 사용이유

 알아야 할 정보:

 1) jsonIgnore - 직렬 / 역직렬화에 사용되는 속성값을 무시할 때 사용

    - 원하는 정보에 대해서는(예, userId, password) 일부 속성을 무시할 때 사용

       -> 그러면, 로그인 시 해당 속성은 무시되므로 jsp로부터 넘어오는 값들을 사용할 수가 없어 로그인이 되지 않음. 

String Id;

@JsonIgnore
String password; 


만약, jsonIgnore가 false
@JsonIgnore(false)
String password;

 - 이는, 서버에서 역직렬화할 때, 에러를 발생시킴(Unrecognized field "password") , 이는 외부에서 보내주는 password값이 json처리가 되지 않아 일어나는 경우로, 에러가 남

 

- jsonIgnore 속성이 false일 경우에는, 논리적 프로퍼티인 password를 json 직렬/역직렬화 시키기 가능해짐

 

2. 사용방법

2) jsonProperty : key를 매핑할 수 있다(명확한 key 매핑 활용을 위한 프로퍼티)

 jsonIgnore와 같이 쓸 수 있다.

String id;

@jsonIgnore
@jsonProperty("password")
String password;

 2-1) 위는, 에러가 나지 않으면서 json의 직렬/역직렬화 시,  password필드를 무시할 수 있게 됨

 

 2-2) 상세 내용

 POST로 넘어오는 데이터는 보통 snake_case(스네이크처리됨(password_id)) 이런식으로 넘어온다.

반면, 자바 entity인 경우에는 camel_case(카멜 케이스(passwordId))로 됨

 

이 경우, 매핑이 된다해도 key값이 일치하지 않는 경우가 있다. 그래서 데이터를 불러오기가 힘든 경우가 있는데, 

이를 방지하기 위해 key값을 명확히 주는 프로퍼티를 주는 것이다.

 

만약, 필드가 30개 이상인 경우에는 JsonNaming을 쓰면 됨

@Data
@JsonNaming()
public class loginParam extends ~~param {

	String id;
    String password;

}

 

필드가 많은 경우, service단에서 데이터를 한꺼번에 처리하기가 힘든 경우가 있으므로 builder()라는 함수를 쓴다.

 

 

'JAVA > JAVA basic' 카테고리의 다른 글

Map데이터 가져오기  (0) 2022.01.27
Heap, Stack, Method  (0) 2021.12.08
자바 - 기초(자바의 정석) - chapter 2, 3  (0) 2021.11.29
자바 개념  (0) 2021.08.23
자바  (0) 2021.08.18

관련글 더보기