본문 바로가기
▶ Back-End/Java

JSON 응답 필드 Null 값 제외(@JsonInclude)

by 오늘도 코딩 2021. 4. 30.
728x90
반응형

JSON 응답 필드가 Null 값인 경우 응답 필드에서 제외 시키는 방법

 

 

▷  해결방법

@JsonInclude(JsonInclude.Include.NON_NULL) 어노테이션 사용(필드 별 설정 가능)

 

 

▷ Example

 

@Data
@JsonInclude(value = Include.NON_NULL)
public class TestResVO {
    /** 학번 */
    private String studentNo; 
    /** 학생 이름 */
    private String name;
    /** 취미 */
    private String hobby;
}
public static void testResJson() {
	try {
		/* TEST DATA 생성 */
		String testData = "{\"STUDENTNO\": \"00001\",\"NAME\": \"홍길동\", \"HOBBY\": \"\"}";

		/* TEST JSONObject 파싱 */
		JSONParser jsonParse = new JSONParser();
		JSONObject jsonObj = (JSONObject) jsonParse.parse(testData);
		
		System.out.println(jsonObj); 
		// {"STUDENTNO":"00001","HOBBY":"","NAME":"홍길동"}

		/* 응답VO 설정 */
		TestResVO resVO = new TestResVO();
		resVO.setStudentNo(String.valueOf(jsonObj.get("STUDENTNO")));
		resVO.setName(String.valueOf(jsonObj.get("NAME")));
		// HOBBY 응답 필드 NULL 설정
		
		System.out.println(resVO); 
		// TestResVO(studentNo=00001, name=홍길동, hobby=null)

		/* 응답VO JSON 변환 */
		ObjectMapper mapper = new ObjectMapper();
		String strResVO = mapper.writeValueAsString(resVO);
		
		/* 최종확인 */
		System.out.println(strResVO);
		// TestResVO에 @JsonInclude(value = Include.NON_NULL)가 있는 경우
			// {"studentNo":"00001","name":"홍길동"}
		// 없는 경우
			// {"studentNo":"00001","name":"홍길동","hobby":null}
	} catch(Exception e) {
		System.out.println(e);
	}
}

 

 

728x90
728x90

'▶ Back-End > Java' 카테고리의 다른 글

파일 검색 후 파일 읽기  (0) 2021.05.13
날짜 비교  (0) 2021.05.04
해당 월 말일 산출  (0) 2021.04.23
문자열 중간 마스킹 처리  (0) 2021.04.22
문자열 n번째 이후 마스킹 처리  (0) 2021.04.22

댓글