๋ฐ์ํ
VO๊ฐ์ฒด๋ฅผ JSON์ผ๋ก ๋ณํํ ๋ ํฌํจ๋๋ฉด ์๋๋ ๋ณ์์ @JsonIgnore ์ด๋ ธํ ์ด์ ์ ์ ์ธํ์ฌ JSON์ ํฌํจ๋์ง ์๋๋ก ํ ์ ์๋ค.
ํ์ง๋ง ์ํฉ์ ๋ฐ๋ผ json ํฌํจ ์ฌ๋ถ๊ฐ ๋ฌ๋ผ์ง๋ ๊ฒฝ์ฐ ์๋์ ๊ฐ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ๋๋ค.
ObjectMapper mapper = new ObjectMapper();
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); //null์ธ ๋ฐ์ดํฐ๋ฅผ ์ ์ธํ๊ณ json ์์ฑ
mapper.writeValueAsString(testVO);
VO์ default๋ก ์ ์ฉํ๋ ค๋ฉด VO Class์ @JsonInclude ์ด๋ ธํ ์ด์ ์ ์ ์ธํ๋ฉด ๋๋ค.
@JsonInclude(JsonInclude.Include.NON_NULL)
1. JsonInclude.Include.ALWAYS
- ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ JSON์ผ๋ก ๋ณํํ๋ค.
2. JsonInclude.Include.NON_NULL
- null์ธ ๋ฐ์ดํฐ๋ ์ ์ธํ๋ค.
3. JsonInclude.Include.NON_ABSENT
- null์ธ ๋ฐ์ดํฐ์
- ์ฐธ์กฐ ์ ํ (Java 8 'Optional'๋๋ {link java.utl.concurrent.atomic.AtomicReference})์ "absent"๊ฐ์ ์ ์ธํ๋ค.
์๋ฅผ ๋ค์ด TestVO์ private AtomicReference<String> ar; ๊ฐ ์ ์ธ๋์ด ์๊ณ ,
testVO.setAr(new AtomicReference<String>()); ๋ง ํ์ ๊ฒฝ์ฐ ์ ์ธ๋๋ค.
4. JsonInclude.Include.NON_EMPTY
- null์ธ ๋ฐ์ดํฐ์
- absent ๋ฐ์ดํฐ์
- Collections, Map์ isEmpty()๊ฐ true์ธ ๋ฐ์ดํฐ์
- Array์ length๊ฐ 0์ธ ๋ฐ์ดํฐ์
- String์ length๊ฐ 0์ธ ๋ฐ์ดํฐ๋ ์ ์ธํ๋ค.
5. JsonInclude.Include.NON_DEFAULT
- empty์ธ ๋ฐ์ดํฐ์
- ๊ธฐ๋ณธํ ํ์ ์ด default๊ฐ์ธ ๋ฐ์ดํฐ์ (์: int/Intege=0, boolean=true)
- Date์ timestamp๊ฐ 0L์ธ ๋ฐ์ดํฐ๋ ์ ์ธํ๋ค.
728x90
๋ฐ์ํ
๋๊ธ