Http 요청 데이터 - JSON

Minseok Kim·2024년 1월 29일

Spring

목록 보기
7/13
@WebServlet(name = "requestBodyJsonSurvlet", urlPatterns = "/request-body-json")
public class RequestBodyJsonSurvlet extends HttpServlet {
    
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        ServletInputStream inputStream = request.getInputStream();
        String messageBody = StreamUtils.copyToString(inputStream, StandardCharsets.UTF_8);

        System.out.println("messageBody = " + messageBody);
    }
}

JSON 형식 전송

포스트 맨을 이용하여 JSON 형식을 전달하였다.

messageBody에 잘 담겨져 있는것을 확인할 수 있다.

이제 JSON 결과를 Jackson 라이브러리(ObjectMapper)를 이용하여 자바 객체로 변환하자.
스프링 부트로 Spring MVC를 선택하면 기본으로 Jackson 라이브러리 ( ObjectMapper )를 함께 제공한다.

@Getter @Setter
public class HelloData {
    private String username;
    private int age;
}
@WebServlet(name = "requestBodyJsonSurvlet", urlPatterns = "/request-body-json")
public class RequestBodyJsonSurvlet extends HttpServlet {

    private ObjectMapper objectMapper = new ObjectMapper();

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        ServletInputStream inputStream = request.getInputStream();
        String messageBody = StreamUtils.copyToString(inputStream, StandardCharsets.UTF_8);

        System.out.println("messageBody = " + messageBody);

        HelloData helloData = objectMapper.readValue(messageBody, HelloData.class);
        System.out.println("helloData.username = " + helloData.getUsername());
        System.out.println("helloData.age = " + helloData.getAge());

		response.getWriter().write("ok~~");        
    }
}

객체로 잘 변환되었음을 알 수 있다.

출처
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

0개의 댓글