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()라는 함수를 쓴다.
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 |