相关疑难解决方法(0)

杰克逊动态改变JsonIgnore

我有一个类,里面也有变量.有时我想忽略一些字段,有时候不反序列化(也许在序列化时).我怎么能在杰克逊这样做?

java json jackson deserialization

29
推荐指数
1
解决办法
4万
查看次数

Jackson自定义注释用于自定义NULL值序列化

根据这个答案:https: //stackoverflow.com/a/43342675/5810648

我写了这样的序列化器:

public class CustomSerializer extends StdSerializer<Double> implements ContextualSerializer {

    private final NAifNull annotation;

    public CustomSerializer() {
        super(Double.class);
        this.annotation = null;
    }

    public CustomSerializer(NAifNull annotation) {
        super(Double.class);
        this.annotation = annotation;
    }

    @Override
    public void serialize(Double value, JsonGenerator gen, SerializerProvider provider) throws IOException {
        if (annotation != null && value == null) {
            gen.writeString("N/A");
        } else {
            gen.writeNumber(value);
        }
    }

    @Override
    public JsonSerializer<?> createContextual(SerializerProvider prov, BeanProperty property) {
        NAifNull annotation = property.getAnnotation(NAifNull.class);
        return new CustomSerializer(annotation);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果注释存在且字段为,则Witch应该写字符串"N/A" …

java jackson

5
推荐指数
1
解决办法
1055
查看次数

标签 统计

jackson ×2

java ×2

deserialization ×1

json ×1