java

java jsckson2 라이브러리 사용 null and default value ignore

kimbs0301 2024. 10. 8. 22:29

java jsckson2
null and default value ignore


json 데이터의 경우 널 및 기본값을 json에서 제외하면 데이터 사이즈를 줄일 수 있다.

 

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

import static com.fasterxml.jackson.annotation.JsonInclude.Include;

public class JsonExample {

    public static void main(String[] args) {
        ObjectMapper objectMapper = new ObjectMapper();
//        JsonInclude.Value value = JsonInclude.Value.construct(Include.ALWAYS, Include.NON_NULL);
//        objectMapper.setDefaultPropertyInclusion(value);

        var saveData = new SaveData();
        saveData.setTime(1231234567890L);
        saveData.setMessage("ok");

        try {
            String json = objectMapper.writeValueAsString(saveData);
            System.out.println(json);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }

        saveData = new SaveData();
//        saveData.setTime(0);
//        saveData.setMessage(null);

        try {
            String json = objectMapper.writeValueAsString(saveData);
            System.out.println(json);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
    }
}

class SaveData {
    @JsonInclude(Include.NON_DEFAULT)
    private long time;
    @JsonInclude(Include.NON_NULL)
    private String message;

    public long getTime() {
        return time;
    }

    public void setTime(long time) {
        this.time = time;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}

 

실행결과>
{"time":1231234567890,"message":"ok"}
{}

references
https://www.baeldung.com/jackson-ignore-null-fields
https://examples.javacodegeeks.com/mapping-default-values-to-null-fields-in-jackson/

 

'java' 카테고리의 다른 글

java google protobuf ByteBuffer 사용  (0) 2025.03.17
java bucket index  (0) 2025.03.17
spring boot 가상 스레드로 웹소켓 사용  (0) 2024.07.20
java time ticks  (0) 2024.07.05
java drawing random  (1) 2024.07.05