You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jackson 2.7.4反序列化报错:无法将START_OBJECT转为String求助

问题分析与解决方案

核心错误原因

  1. JSON格式不匹配:错误提示Can not deserialize instance of java.lang.String out of START_OBJECT token,说明请求中date字段是一个JSON对象(比如"date": {"time": "2024-05-20"}),但你的Filter类中date定义为String类型,Jackson无法将对象直接反序列化为字符串。
  2. Jackson版本冲突:你的Maven依赖使用的是com.fasterxml.jackson(Jackson 2.x),但错误栈显示运行时调用的是org.codehaus.jackson(Jackson 1.x)——WebSphere 9默认自带了旧版本的Jackson,导致项目依赖的2.7.4版本未被加载,引发兼容问题。

解决方案

1. 修正JSON请求格式或实体类定义

  • 如果前端应传递字符串日期:确保请求中date字段是字符串类型,示例正确JSON:
    {
      "date": "2024-05-20"
    }
    
  • 如果前端必须传递对象格式:修改Filter类,将date字段改为对应嵌套类:
    @Data
    @EqualsAndHashCode(callSuper = false)
    @NoArgsConstructor
    @AllArgsConstructor
    public class Filter {
        private DateInfo date;
        // 其他字段...
    
        @Data
        public static class DateInfo {
            private String value; // 对应JSON对象中的字段名
        }
    }
    

2. 解决Jackson版本冲突(WebSphere环境)

  • 统一Maven依赖版本:确保jackson-databind也指定2.7.4版本,避免依赖自动引入不一致的版本:
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.7.4</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.7.4</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.7.4</version>
    </dependency>
    
  • 配置WebSphere类加载顺序:
    登录WebSphere管理控制台,依次进入:
    应用程序 > 你的应用 > 类加载和更新检测
    将类加载顺序设置为父类最后加载(Parent Last),让项目优先加载自身依赖的Jackson库,而非WebSphere自带的旧版本。
  • 排除WebSphere自带Jackson(可选):
    如果是EAR部署,可在application.xml中添加排除规则;如果是WAR包,可通过Maven排除间接依赖的codehaus Jackson(若存在)。

3. 验证步骤

  • 打印请求的完整JSON内容,确认date字段的实际结构是否与实体类定义匹配;
  • 测试简单请求,确认格式修正后是否能正常反序列化;
  • 检查WebSphere类加载配置生效后,运行时加载的Jackson版本是否为2.7.4。

内容的提问来源于stack exchange,提问作者Luciana Oliveira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 19:03:37