Jackson 中如何将 null 转化为空字符串
概述
在与一些第三方系统对接时,可能会遇到需要将 null 值转化为空字符串的需求。在 Jackson 中,可以通过自定义序列化器来实现这样的需求。不过 1.x 中的做法和 2.x 中的做法略有不同。
Jackson 2.x null 转化为空字符串
首先自定义一个针对 null 值的序列化器
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import java.io.IOException;
public class NullValueSerializer extends JsonSerializer<Object> {
@Override
public void serialize(Object value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
gen.writeString("");
}
}
将上面的序列化器应用到 ObjectMapper 对象上。需要注意的是在 Jackson 2.x 中,需要使用 DefaultSerializerProvider 代替 1.x 中 StdSerializerProvider。
ObjectMapper mapper = new ObjectMapper();
DefaultSerializerProvider provider = new DefaultSerializerProvider.Impl();
provider.setNullValueSerializer(new NullValueSerializer());
mapper.setSerializerProvider(provider);
Jackson 1.x null 转化为空字符串
StdSerializerProvider sp = new StdSerializerProvider();
sp.setNullValueSerializer(new NullValueSerializer());
ObjectMapper m = new ObjectMapper();
m.setSerializerProvider(sp);
有问题吗?点此反馈!
温馨提示:反馈需要登录