728x90
클라이언트에게서 데이터를 전달받아 서버에서 처리하기 위해서는 주로 json 형태의 데이터를 전달받고는 한다. 이 때 Jackson 패키지의 ObjectMapper를 사용해 받아온 문자열 형태의 json 데이터 또는 @RequestBody로 받아온 Map 타입의 데이터를 자용자 정의 타입으로 변환할 수 있다.
먼저, ObjectMapper를 사용할 때에는 ObjectMapper 객체를 생성하여 사용할 수 있다.
ObjectMapper objectMapper = new ObjectMapper();
1. json 문자열에서 특정 타입(Class)로 변환하는 경우
- readValue(String jsonStr, classType)
T parsingData = objectMapper.readValue(jsonStr, T.class);
2. 특정 타입(Class)의 데이터를 다른 타입의 데이터로 변환하는 경우
- convertValue(Object o, classType)
Map<String, Object> param = new HashMap<>();
param.put("data", Object data)
T columns = objectMapper.convertValue(param.get("data"), T.class);
3. Collection 타입으로 변환하는 경우
- Jackson의 TypeReference 클래스 사용
- 'new TypeReference<T>(){}'의 형태
List<T> result = objectMapper.convertValue(param.get("data"), new TypeReference<List<T>>(){});
반응형
'Backend > Java' 카테고리의 다른 글
Java) Integer List to int Array (0) | 2022.06.30 |
---|---|
Java) 자바를 통해 쉘 실행하기 및 파라미터 전달하기 (0) | 2022.06.18 |
Java Networking) UDP 통신방식을 이용해 메세지 주고받기 (0) | 2022.04.30 |
Java Networking) Multi Thread환경을 Synchronized를 통해 동기화시키기 (0) | 2022.04.29 |
Java Networking) 채팅 서버 만들어보기 (0) | 2022.04.25 |