JSON으로 변환하기
시스템이 복잡해지면서 다른 시스템과 정보를 주고받을 일이 발생하는데, 이때 데이터 교환 포맷으로 JSON을 사용할 수 있다. 검색한 글 목록을 JSON 형식의 데이터로 변환하여 브라우저에 출력하려면 어떻게 해야할까?
[{
"seq": 2,
"title": "zzzxcxzcz",
"writer": "xx",
"content": "\t\tccczxczxcxzcc",
"regDate": 1682607600000,
"cnt": 0
}, {
"seq": 1,
"title": "1112332131",
"writer": "22",
"content": "\t\t\t5141332144\t33134123",
"regDate": 1682607600000,
"cnt": 0
}]
Jackson2 라이브러리 다운로드
pom.xml 파일을 열어서 jackson2 라이브러리를 다운로드 받을 수 있도록 <dependency>를 추가한다.
<!-- Jackson2 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.4</version>
</dependency>
HttpMessageConvertor 등록
응답 결과를 HTML이 아닌 JSON이나 XML로 변환하여 HTTP 바디에 저장하려면 스프링에서 제공하는 변환기(Converter)를 사용해야 한다. 스프링은 HttpMessageConverter를 구현한 다양한 변환기를 제공한다.
이 변환기를 사용하면 자바 객체를 다양한 타입으로 변환하여 HTTP 응답 바디를 설정할 수 있다.
<mvc:annotation-driven></mvc:annotation-driven>
스프링 설정 파일에 위와 같이 엘리먼트를 추가하면, HttpMessageConverter를 구현한 모든 변환기가 생성된다.
Controller 클래스에 해당 요청을 처리할 메서드를 아래 같은 형식의 에노테이션으로 설정하면 된다.
@RequestMapping("/dataTransform.do")
@ResponseBody
public List<BoardVO> dataTransform(BoardVO vo) {
vo.setSearchCondition("TITLE");
vo.setSearchKeyword("");
List<BoardVO> boardList = boardService.getBoardList(vo);
return boardList;
}
@ResponseBody라는 어노테이션은 자바 객체를 Http 응답 프로토콜의 몸체로 변환하기 위해 사용된다.
@JsonIgnore
public String getSearchCondition() {
return searchCondition;
}
@JsonIgnore
public MultipartFile getUploadFile() {
return uploadFile;
}
@JsonIgnore 라는 어노테이션은 자바 객체를 JSON으로 변환할 때, 특졍 변수를 변환에서 제외시키기 위해 사용된다.
'Spring' 카테고리의 다른 글
SpringBoot 환경에서의 사용자 정의 예외 처리 (0) | 2023.06.26 |
---|---|
[Spring] JPA를 활용한 API 생성 (0) | 2023.05.03 |
[Spring] 어노테이션 기반의 예외처리 / @ControllerAdvice와 @ExceptionHandler 어노테이션을 이용한 예외처리 (0) | 2023.04.29 |
[Spring] 두 개의 레이어로 나눈 2-Layered 아키텍처 (0) | 2023.04.29 |
[Spring] Controlle가 직접 DAO 객체의 메서드를 호출하면 안되는 몇가지 이유에 대해서 (0) | 2023.04.29 |
댓글