No serializer found for class cn.hutool.json.JSONNull and no properties discovered to create

问题记录:

调用第三方接口进行json解析时出现了:No serializer found for class cn.hutool.json.JSONNull and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: com.ncist.common.api.vo.Result[“data”]->cn.hutool.json.JSONObject[“data”]->cn.hutool.json.JSONObject[“vehicle_list”]->cn.hutool.json.JSONArray[0]->cn.hutool.json.JSONObject[“vehicle_std_item”]->cn.hutool.json.JSONArray[0]->cn.hutool.json.JSONObject[“desc”])

http-nio-9003-exec-5           20230802 20:20:40.025 ERROR traceId=[] org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/logistics].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [/logistics] threw exception [Request processing failed; nested exception is org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple type, class cn.hutool.json.JSONNull]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class cn.hutool.json.JSONNull and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: com.ncist.common.api.vo.Result["data"]->cn.hutool.json.JSONObject["data"]->cn.hutool.json.JSONObject["vehicle_list"]->cn.hutool.json.JSONArray[0]->cn.hutool.json.JSONObject["vehicle_std_item"]->cn.hutool.json.JSONArray[0]->cn.hutool.json.JSONObject["desc"])] with root cause
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class cn.hutool.json.JSONNull and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: com.ncist.common.api.vo.Result["data"]->cn.hutool.json.JSONObject["data"]->cn.hutool.json.JSONObject["vehicle_list"]->cn.hutool.json.JSONArray[0]->cn.hutool.json.JSONObject["vehicle_std_item"]->cn.hutool.json.JSONArray[0]->cn.hutool.json.JSONObject["desc"])
	at com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from(InvalidDefinitionException.java:77)
	at com.fasterxml.jackson.databind.SerializerProvider.reportBadDefinition(SerializerProvider.java:1277)
	at com.fasterxml.jackson.databind.DatabindContext.reportBadDefinition(DatabindContext.java:400)
	at com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.failForEmpty(UnknownSerializer.java:71)
	at com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.serialize(UnknownSerializer.java:33)
	at com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeFields(MapSerializer.java:726)
	at com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeWithoutTypeInfo(MapSerializer.java:681)
	at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:637)
	at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:33)
	at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119)
	at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79)

我使用的代码是:

 JSONObject jsonObject = JSONUtil.parseObj(post);

解释:

Hutool会使用JSONNull来表示空值,而SpringBoot默认使用的序列化是Jackson,在接口调用过程中使用了Map,直接传入了Hutool的JSONObject,而该Map存在空值,所以存在JSONNull,最终导致错误。

修改:

使用 com.alibaba.fastjson 来解析:

com.alibaba.fastjson.JSONObject jsonObject = com.alibaba.fastjson.JSONObject.parseObject(gpString);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

21岁被迫秃头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值