Jackson序列化问题:Cannot deserialize instance of `java.util.ArrayList_java.lang.Object

Unity Scriptable Build Pipeline (SBP) 详解 Unity 的可编程构建管线(Scriptable Build Pipeline, SBP)标志着引擎构建架构的一次关键转变,它从不透明的 C++ 实现转向了灵活、可扩展的 C# 框架。SBP 旨在满足现代游戏开发日益增长的需求,通过改进增量处理和高效缓存机制显著提升了构建性能。它赋予开发者对内容构建过程前所未有的控制力,从而能够针对特定项目需求进行深度定制。尽管 SBP 是 Unity 推荐的 Addressables 系统的重要基础层,但理解其核心组件、构建流程和高级功能对于优化大型项目、简化 CI/C 阅读详情

产生原因:OpenFeign跨服务调用查询相关信息, 在返回List时发现出现序列化异常。

feign.codec.DecodeException: Error while extracting response for type [com.ev.amp.common.R<java.util.List<com.ev.amp.plant.dto.AlgoDTO$AlgoInfo>>] and content type [application/json]; nested exception is org.springframework.http.converter.HttpMessageNotReadableException: 
JSON parse error: Cannot deserialize instance of `java.util.ArrayList<java.lang.Object>` out of VALUE_STRING token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList<java.lang.Object>` out of VALUE_STRING token
 at [Source: (PushbackInputStream); line: 1, column: 187] (through reference chain: com.ev.amp.common.R["data"]->java.util.ArrayList[0]->com.ev.amp.plant.dto.AlgoDTO$AlgoInfo["analysisRequires"])
	at feign.AsyncResponseHandler.decode(AsyncResponseHandler.java:119)

**分析:**看到序列化失败,首先需要清楚数据返回结果以及接收参数DTO是怎样的!
通过swagger调用,返回结果如下
image.png
再来看看接收类
image.png
实体类分明定义的是list,却序列化成"",导致后续Feign Decode解码器序列化失败了。由此可知,是JSON序列化出现问题了。
解决方法:

  1. 即是序列化出现问题,需要弄清返回请求结果时使用的序列化方式。java常用的序列化方式:FastJson和Jackson(gson不常用)。而我们使用的是Jackson。

image.png
2.找到Jackson配置

    public ObjectMapper jacksonObjectMapper() {
        ObjectMapper objectMapper = JacksonUtils.getInstance();
     	/* 省略 */
        objectMapper.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, true);
        return objectMapper;
}

3.利用反射获取属性类型,分情况进行赋值

        objectMapper.getSerializerProvider().setNullValueSerializer(new JsonSerializer<Object>() {
            @Override
            public void serialize(Object o, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
                String fieldName = jsonGenerator.getOutputContext().getCurrentName();
                //反射获取字段类型
                Field field = ReflectUtil.getField(jsonGenerator.getCurrentValue().getClass(), fieldName);
                if (Objects.equals(field.getType(), List.class)) {
                    //列表型空值返回[]
                    jsonGenerator.writeStartArray();
                    jsonGenerator.writeEndArray();
                } else {
                    // 字段保留,将null值转为""
                    jsonGenerator.writeString("");
                }
            }
        });

image.png

锐捷交换机堆叠配置举例 一、组网需求: 1)四台S2628G进行堆叠; 2)设备在堆叠前先设置好优先级; 3)使用光口堆叠的设备如RG-S2928G-E相关配置 二、组网拓扑 三、配置要点: 普通堆叠设备不需要配置,只要把堆叠模块和线缆连接好即可 堆叠模块不支持热插拔,即插在模块连上线缆后不能立即生效,需要重启设备才生效。 如果拔掉堆叠插槽后,想再插上模块堆叠,那么必须重启设备才生效 设备堆叠需要协商参数,时间会比较久,请耐心等待 堆叠时设备建议是... 阅读详情

相关推荐

【一文搞懂几种常用推荐算法】

协同过滤:适合用户-物品交互数据丰富的场景。矩阵分解:能处理稀疏数据,适合显式评分预测。基于内容:依赖物品特征,解决冷启动问题。NMF:适用于非负数据(如点击率、购买记录)。根据实际需求选择算法,或结合多种方法构建混合推荐系统。

专注技术的博主 2636

测试接口,发起请求时候报错JSON parse error: Cannot deserialize instance of java.util.ArrayList<java.lang.Object>

测试接口,发起请求时候报错JSON parse error: Cannot deserialize instance of java.util.ArrayList<java.lang.Object>

Januea的博客 1万+

MuJoCo 仿真中的碰撞检测与参数优化实战

本文深入解析MuJoCo仿真中的碰撞检测机制与参数优化策略,涵盖位掩码配置、凸包分解实战及穿模问题解决方案。通过具体案例和参数设置建议,帮助开发者高效解决机械臂抖动、轴孔装配等常见问题,提升仿真精度与稳定性。特别针对步进电机仿真提供了高增益位置执行器的优化方案。

weixin_29081101的博客 332

Postman 调试接口报错JSON parse error: Cannot deserialize instance of `java.util.ArrayList` out of START_OB

postman模拟list报错

gb4215287的博客 4542

别再拿空气标定法糊弄了!手把手教你搞定水下相机标定(附Python代码)

本文详细解析水下相机标定的关键技术,揭示传统空气标定法失效原因,并提供基于单视点模型(SVP)的完整Python解决方案。通过折射效应分析、标定板设计优化和代码实战演示,帮助读者掌握水下标定核心方法,有效提升水下视觉系统测量精度。

weixin_30530939的博客 208

Ubuntu 22.04下Minkowski Engine编译避坑指南:解决Cuda 12.2与Pytorch cu118版本冲突

本文详细介绍了在Ubuntu 22.04系统中解决Minkowski Engine编译时Cuda 12.2与Pytorch cu118版本冲突的实用方法。通过修改版本检查逻辑、创建兼容符号链接等技巧,帮助开发者顺利完成编译,并提供了性能优化建议和替代方案,确保三维点云处理任务的高效运行。

weixin_42543309的博客 161

Cannot deserialize instance of `java.util.ArrayList<java.lang.Object>` out of VALU

今天通过工具来测试一个接口时报这个错误,出现该错误的原因是提交错误的值到后端进行映射,比如在中定义了某个属性类型为List数组,如下图所示 然后我们在接口提交的值是字符串,如下图所示: 然后我们在接口提交的值是字符串,如下图所示: 此时在数据映射过程中,数据类型不兼容以致于在相互转化时出错。因此我们只需要修改为数组(列表)格式“[“值1”,“值2”,…]”就行,如下图所示: ...

weixin_43997319的博客 7950

Flink实战项目——城市交通实时监控平台

本项目是与公安交通管理综合应用平台、机动车缉查布控系统等对接的,并且基于交通部门现有的数据平台上,进行的数据实时分析项目。

yangwei2048的博客 837

JSON parse error: Cannot deserialize instance of `java.util.ArrayList

今天测试接口,JSON里面有个集合,一直报错如下所示 { "name": "到底怎么回事呢", "status": "0", "tenantId": "123", "createId": "123", "modifyId": "123", "labelItemRelations": { "itemId": "111", "status": "1", "tenantId": "123", "createId": "123", "modifyId"

见证自己学习,成长的记录 3万+

【深度学习新浪潮】2025年末AI产业动态:泡沫争议、技术突破与2026投资机会解析

2025年末的AI产业在波动中完成了阶段性调整,技术突破与政策支持构筑了长期成长基石,而结构性分化与风险隐患则要求投资者更加精准地把握机会。2026年作为“风险资产的黄金年”,AI全产业链将持续成为资本聚焦的核心,无论是算力国产化的技术突破,还是应用场景的规模化落地,都有望催生一批优质企业。投资者需立足产业阶段特征,理性看待短期波动,聚焦核心技术与政策红利,方能在AI产业的成长浪潮中把握确定性机会。

专注:太空算力、AI infra、异构调度、大模型成本工程 1809

【异常】Cursor 编辑器 “Too many computers“ 报错排查与完整解决方案

该报错通常在启动Cursor、调用AI对话/代码补全核心功能时触发,会直接阻断编辑器AI能力的正常使用。

奶爸的编程之路,也就一周冷个三天 456

实习踩坑之路:JSON格式错误,导致Java异常JSON parse error: Cannot deserialize instance of `java.util.ArrayList` out o

错误描述 上个星期写了Dubbo底层接口的对外支持,今天自测一下,自测的时候出现了一个错误,就是这个 JSON parse error: Cannot deserialize instance of `java.util.ArrayList` out of VALUE_STRING token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instanc

萌新Java工程师 2万+

Microsoft Bitlocker企业级管理部署方案

BitLocker是Windows 10以及更高版本中内置的磁盘加密工具,是一种可靠的数据保护机制,可以保护计算机上的敏感数据不被未经授权的人访问。BitLocker的工作原理是将整个系统卷或其他数据卷加密的同时,向某个可信软件或硬件模块请求密钥解密数据。BitLocker最大的好处在于其内置于Windows系统,所以用户无需安装其他软件或购买额外的许可证或硬件设备。本文将介绍Microsoft BitLocker企业级管理部署方案,包括:BitLocker部署前的准备工作。

xueyunshengling的博客 2073

JSON parse error: Cannot deserialize instance of `java.util.ArrayList` out of START_OBJECT token; ne

JSON parse error: Cannot deserialize instance of java.util.ArrayList out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of java.util.ArrayList out of START_OBJECT … 其实就是js

shihao的博客 1万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

解决Cannot deserialize instance of `java.util.ArrayList<java.lang.Object>` out of VALUE_STRING

此时在数据映射过程中,数据类型不兼容以致于在相互转化时出错。因此我们只需要修改为数组格式“[“值1”,“值2”,…今天通过PostMan工具来测试一个接口时报这个错误,出现该错误的原因是。...

m0_67401228的博客 4459

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Cannot deserialize instance of `java.util.ArrayList<java.lang.Object>` out of START_OBJECT token\n a

测试接口遇到报错Cannot deserialize instance of `java.util.ArrayList` out of START_OBJECT token\n a

m0_62946761的博客 1374

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

解决Cannot deserialize instance of `java.util.ArrayList<java.lang.Object>` out of VALUE_STRING token

       今天通过PostMan工具来测试一个接口时报这个错误,出现该错误的原因是提交错误的值到后端进行映射,比如在实体类中定义了某个属性类型为List数组,如下图所示:        此时在数据映射过程中,数据类型不兼容以致于在相互

xuguoxing123的博客 12万+

JSON parse error: Cannot deserialize instance of `java.util.ArrayList<java.lang.Long>` out of START_

Post请求里面List集合用[]接收参数,直接在PostMan的Body—》raw—>Json中写上 [1,2,3] 不可以这样 { "ids":[1,2,3] }

有时间可以指导毕业设计,可以私聊我。一个热爱编程的smallCuteMonkey,可以私信我 3931

Cannot deserialize instance of `java.util.ArrayList` out of START_OBJECT token解决方法

项目场景: 报错的原因:一系列的报错,如:Cannot deserialize instance of `java.lang.Integer`out of START_OBJECT token等错误,都是相同的原因。前端传入的是JSON格式,后端无法将接收到的JSON字符串转化为对应的数据格式,故而爆出这样的错误。 原因分析: 既然咱们项目正在使用的框架无法将数据转化为成我们需要的格式,那我们可以自己手动去转化 解决方案: 下图即为将前端JSON数据转化为我们想要的集合格式,当然了其它的.

漫观天上云卷云舒的博客 4万+

JSON parse error: Cannot deserialize instance of `java.util.ArrayList` out of VALUE_STRING token

一例JSON数组转化错误记录 错误信息如下: org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of `java.util.ArrayList` out of VALUE_STRING token; nested ex...

金戈铁马 14万+

Cannot deserialize instance of `java.util.ArrayList` out of START_OBJECT token错误解决

原因:需要的是集合,但是传入的参数外面包装了一个对象。解决方式:把对象用数组的格式进行传递。

浩浩的博客 3413
上一篇: MybatisPlus使用多字段处理器List带来的问题及对应解决方案
下一篇: JDK8 Lambda基本使用
CodingBoyPP
博客等级 码龄8年 143粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值