fastjson 反序列化的时候不需要字段的默认值,有没有办法可以去除字段的默认值?

yquaqz18  于 2023-02-04  发布在  其他
关注(0)|答案(3)|浏览(384)

反序列化的时候不需要字段的默认值,有没有配置可以去除?

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}

有办法去除吗?

字段类型默认值
fatherCodeStringRoot
sortInteger0
enabledBooleantrue

反序列化的时候不需要字段的默认值,有没有配置可以去除?

bnl4lu3b

bnl4lu3b1#

@easysdk 不要在POJO内给任何字段默认值,违背编码规范。
同时,字段的类型要使用封装类型,不要使用基础类型,例如:int 错误,Integer 正确。
int的默认值为0, integer的默认值为NULL。
JSON序列化的时候,默认NULL字段是不输出的。

q35jwt9p

q35jwt9p2#

@mingkaili 主要是问题已经出现了,怎么解决,很多地方都有使用到,fastjson可以处理此类问题吗?能不能支个招?

bbuxkriu

bbuxkriu3#

同问,不知道问题解决了没?

相关问题