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
복사