反序列化的时候不需要字段的默认值,有没有配置可以去除?
public <T> Optional<T> toObject(Object obj, Class<T> cls) {
try {
if (obj instanceof String) {
return Optional.of(JSON.parseObject((String) obj, cls));
}
String da = JSON.toJSONString(obj);
T t = JSON.parseObject(da, cls);
log.error("原始值-{}-转换后的值-{}", da, JSON.toJSON(t));
return Optional.of(t);
} catch (Exception e) {
log.error("HibernateNativeExecutor.toObject error-{}-{}", obj, cls, e);
}
return Optional.empty();
}
传入
{"code":"K33514912188900"}
返回了默认值
{"code":"K33514912188900","fatherCode":"Root","sort":0,"enabled":true}
有办法去除吗?
字段 | 类型 | 默认值 |
---|---|---|
fatherCode | String | Root |
sort | Integer | 0 |
enabled | Boolean | true |
反序列化的时候不需要字段的默认值,有没有配置可以去除?
3条答案
按热度按时间bnl4lu3b1#
@easysdk 不要在POJO内给任何字段默认值,违背编码规范。
同时,字段的类型要使用封装类型,不要使用基础类型,例如:int 错误,Integer 正确。
int的默认值为0, integer的默认值为NULL。
JSON序列化的时候,默认NULL字段是不输出的。
q35jwt9p2#
@mingkaili 主要是问题已经出现了,怎么解决,很多地方都有使用到,fastjson可以处理此类问题吗?能不能支个招?
bbuxkriu3#
同问,不知道问题解决了没?