티스토리 뷰
나의 경우 공통 VO(model)를 사용하지만 API 마다 다른 json의 형태로 리턴해야 하는 경우 사용했다.
1. pom.xml 에 json-view dependency 추가(최신버전 확인하여 사용)
<dependency>
<groupId>com.monitorjbl</groupId>
<artifactId>json-view</artifactId>
<version>1.0.1</version>
</dependency>
2. 사용 예제
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.monitorjbl.json.JsonView;
import static com.monitorjbl.json.Match.match;
import com.monitorjbl.json.JsonViewSerializer;
@Autowired
private UserService userService;
// jackson 초기화
ObjectMapper mapper = new ObjectMapper().registerModule(new JsonViewModule());
// 데이터 조회
List<UserVO> userList = userService.selectUser();
// 제외할 fields 지정
String json = mapper.writeValueAsString(JsonView.with(userList).onClass(UserVO.class, match().exclude("gender")));
.exclude("필드명") 을 여러번 반복해서 사용 가능
.exclude("data.user.gender") 와 같은 식으로 접근 가능
3. json 생성시 항상 제외되기를 원하는 경우 VO의 변수에 @JsonIgnore Jackson어노테이션을 사용
class UserVO {
@JsonIgnore
private String password;
@JsonIgnore
public String getPassword() {
return password;
}
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
public void setPassword(final String password) {
this.password = password;
}
}
변수, getter, setter 레벨에서 각각 지정하는 것도 가능
참고 사이트
https://github.com/monitorjbl/json-view
https://medium.com/@circlee7/jackson-annotations-19886933a252
'개발 > JAVA' 카테고리의 다른 글
List 객체에 add 할때 같은 값이 반복되어 나오는 오류 (0) | 2019.09.17 |
---|---|
[REST API] 첨부파일(multipart)을 포함한 API는 POST로만 전송 가능 (0) | 2019.09.10 |
[REST API] PUT/DELETE/PATCH method parameter 전달이 되지 않는 오류 (0) | 2019.09.10 |
[jxls] jxls 사용법 (0) | 2015.12.30 |
[JAVA] 이클립스(Eclipse)에서 Java Compiler 버전 변경하는 방법 (1) | 2015.07.10 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- s3 동기화
- GeneratePresignedUrlRequest
- aws java sdk
- S3Presigner
- bucket sync
- GetObjectPresignRequest
- RequestParam null
- s3 복사
- json view
- vo fields ignore
- 더스토리풀빌라
- bucket copy
- s3 copy
- rest api parameter null
- s3 sync
- 신천 맛집
- 연어사시미
- s3 보안
- bucket 동기화
- 연어회
- 더스토리펜션
- readonly
- signed url
- api 문서 만들기
- pre-signed url
- 명동 맛집
- 연어초밥
- PresignedGetObjectRequest
- 미리 서명된 url
- 강남 맛집
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함