jackson如何将null转成 空字符串
现在是这样写的
public ObjectMapper objectMapper() {
ObjectMapper objectMapper = Jackson2ObjectMapperBuilder.json().build();
objectMapper.getSerializerProvider().setNullValueSerializer(new JsonSerializer<Object>() {
@Override
public void serialize(Object value, JsonGenerator jg, SerializerProvider sp) throws IOException, JsonProcessingException {
jg.writeString("");
}
});
return objectMapper;
}
可是如果是对象的话,或者list ,map 空的 也会转成 空字符串 这样就类型错误了 ,客户端就会抱错的。
想问大神如何解决 ,如何获取类型
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
这种不行 ,会把对象为null的都变成 "" 空 ,类型都错了大哥
你这是空的不输出 ,这样客户端的实体得赋初始值
回复
嗯,这个我倒是有一个,不过是fastjson的,jackson倒是还没碰到过。
经过各种方式 ,最后使用这种方式
jackson配置成
objectMapper.setSerializationInclusion(Include.NON_EMPTY);
空的 null的不序列化 ,这样前端可以在实体上赋值默认值 ,如果是对象就new出来 ,这样取就不会有空指针错误了
还可以减少网络上的传输 ,缩小了json中没用的字段
加快了gson解析速度 ,因为对象变小了加快解析速度
看起来也很清晰了 ,如果很多空字段看起来很多 很杂乱
就这种方式了