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 |