JSON 형식 전송

  • POST http://localhost:8080/request-body-json
  • content-type = application/json
  • message body : {"username" : "hello", "age" : 20 }
  • 결과 : messagebody = {"username" : "hello", "age" : 20 }

 

 

JSON 형식 파싱 추가

JSON 형식으로 파싱할 수 있게 객체를 하나 생성

 

 

 

테스트 해보기

1) 소스코드는 Text 로 작성하는 것과 같습니다.

@WebServlet(name = "requestBodyJsonServlet", urlPatterns = "/request-body-json")
public class RequestBodyJsonServlet 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);
    }
}

 

2) Postman 에서 JSON 데이터 사용하기

 

raw 에서 JSON 으로 변경만 해주면 됩니다.

3) 정상 작동 확인

 

 

 

JSON 데이터를 Java 객체로 변환하기

: JSON 을 변환시켜주는 라이브러리 필요

 

1) ObjectMapper object 객체 생성 ( SpringBoot 에서 기본적으로 지원해줌 )

2) objectMapper.readValue ( 메세지, Class ) 실행

3) 해당 메서드를 통해 자바 객체를 사용할 수 있게 됩니다.

 

[ 소스코드 ]

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("username : "+helloData.getUsername());
        System.out.println("age : "+helloData.getAge());

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

정상 출력됨이 확인됩니다.

'HTTP' 카테고리의 다른 글

HttpServletResponse 사용해보기  (0) 2022.11.26
HTTP 요청 데이터 작성하기  (0) 2022.11.26
DTO  (0) 2022.08.22
RestAPI 활용하기  (0) 2022.08.22
Message States Server  (0) 2022.08.19

+ Recent posts