0. 혼합 데이터 타입 객체
혼합 데이터 타입 객체 (Mixed Data Type Object)는 다양한 데이터 타입이 공존하는 객체를 말한다.
let data = {
name : 'test',
job : 'student',
hobby : ['soccer', 'movie', 'videogame']
}
특히 공공데이터 API를 활용하다보면 문자열과 배열이 복잡하게 얽힌 JSON 데이터를 볼 수 있다.
1. GSON 사용하기
Gson을 사용하여 이 복잡한 JSON 데이터를 손쉽게 자바 객체로 변환할 수 있다.
우선 받고자하는 데이터와 비슷한 형태의 클래스를 만든다. 위의 자바스크립트객체를 JSON으로 변환하여 컨트롤러에서 받는 과정을 예시로 들어보자.
위에 작성된 데이터의 경우 2개의 문자열 데이터와 하나의 배열 객체로 이루어져있다. 이를 자바 클래스로 표현하면 다음과 같다.
public class TestUtil{
private String name;
private String job;
List<String> hobby;
}
다음은 JSON 문자열을 받고 분석해줄 클래스가 필요하다.
java.lang.reflect.Type 클래스와 com.google.common.reflect.TypeToken 클래스를 사용해 이 데이터를 TestUtil 객체로 변환할 준비를한다.
Type type = new TypeToken<TestUtil>(){
private static final long serialVersionUID = -1L;}.getType();
그 다음은 Gson 객체와 함께 JSON 데이터를 자바 객체로 변환해주면 끝이다.
@ResponseBody
@PostMapping("/test")
public void test(@RequestBody String jsonData){
Gson gson = new Gson();
Type type = new TypeToken<TestUtil>(){
private static final long serialVersionUID = -1;}.getType();
TestUtil test = gson.fromJson(jsonData, type);
}
'웹 개발 > 웹 개발' 카테고리의 다른 글
| AES 암호화/복호화 (0) | 2023.04.24 |
|---|---|
| 파일 삭제 (java.nio.file.Files) (0) | 2023.03.27 |
| sweetalert 2 사용하기 (0) | 2023.02.09 |
| IText 7 - 스탬프 모드 (0) | 2023.02.07 |
| Naver NCloud Platform - SMS 서비스 (0) | 2023.02.06 |