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

能否配置Jackson ObjectMapper将JSON数组反序列化为可变集合而非不可变集合?

解决Jackson反序列JSON数组为可变ArrayList的Spring Boot配置方案

方法一:通过application.yml指定默认集合类型

在Spring Boot的application.yml中添加配置,强制Jackson将JSON数组反序列化为ArrayList:

spring:
  jackson:
    mapper:
      # 指定默认集合实现类为ArrayList
      DEFAULT_COLLECTION_TYPE: java.util.ArrayList

方法二:排除Guava Jackson模块(若引入Guava依赖)

如果项目引入了Guava依赖,Jackson可能默认使用Guava的ImmutableList作为集合实现。可通过配置排除对应模块:

spring:
  jackson:
    modules:
      # 排除Guava的Jackson模块,避免默认生成ImmutableList
      exclude: com.fasterxml.jackson.datatype:jackson-datatype-guava

验证方式

编写简单接口或单元测试确认效果:

@RestController
public class TestController {
    @PostMapping("/test-list")
    public String checkListType(@RequestBody List<String> inputList) {
        // 打印集合实际类型
        System.out.println(inputList.getClass().getName());
        return inputList.getClass().getName();
    }
}

发送JSON数组请求(如["apple", "banana"]),控制台应输出java.util.ArrayList。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 13:28:09