[Spring] JSON Data로 받기

내용
request.getInputStream()
JackSon
Gson
ObjectMapper
readValue()
진행일시
2022/08/26
속성

1. [ Spring에서 JSON-Data] 로 받기

일반적으로 클라이언트에서 정보를 요청하면 받는 형식들이 JSON으로 많이 전달한다.
클라이언트에 요청이오면 서버에서는 Spring에 내장되어있는 유틸클래스로 많이받는다
/*Spring에 내장되어있는 Util클래스는 아래와 같다*/ //1. 클라이언트 요청에대한 정보 불러오기 ServletInputStream inputStream = request.getInputStream(); //2. Spring에 내장되어있는 Util클래스를 이용해 문자열로 전환하기 String messageBody = StreamUtil.copyToString(inputStream, StandardCharsets.UTF_8);
Java
복사
위에서 받아온 JSON에 대한 데이터를 우리가 DTO,VO 로 만든 Class로 변환해서도 가져올 수 도있다
그럴려면 라이브러리가 필요한데 Jackson, Gson이 대표적이다. 아래는 Jackson으로 불러오는 예시이다
Jackson에 ObjectMapper를 이용해 객체를 생성하여 ObjectMapper에있는 readValue메소드를 이용해 변환한다.
ObjectMapper objectMapper = new ObjectMapper(); //HelloDate는 현재 내가 등록한 DTO에 클래스이름이다. HelloData hellDate = objectMapper.readValue(messageBody, 바꾸고싶은VO,DTO);
Java
복사

2. [ 문자열 Json-Data로 변환하기]

ObjectMapper에 writeValueAsString메소드를 이용해 변환해준다
//Content-Type : application/json response.setContentType("application/json"); response.setCharacterEncoding("UTF-8"); HelloData helloData = new HelloData(); helloData.setUsername("song"); helloData.setAge(20); //{"username" : "kim" , "age" : 20 } String result = objectMapper.writeValueAsString(helloData); System.out.println("result = " + result); response.getWriter().write(result);
Java
복사