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

Spring Boot中OpenAPI Generator实现snake_case转camel_case反序列化问题

问题解决方案

针对Spring Boot中OpenAPI生成代码后,snake_case请求体无法正确反序列化为camelCase Java对象的问题,可按以下步骤排查解决:

1. 修正OpenAPI生成器配置(核心步骤)

在build.gradle的openApiGenerate任务中添加Jackson命名策略相关配置,让生成器自动为模型字段添加匹配注解:

openApiGenerate {
    // 其他配置(如spec文件路径、生成目录等)...
    configOptions = [
        "jacksonDatabindNamingStrategy": "SNAKE_CASE",
        "useJacksonJsonIgnoreUnknownProperties": "true"
    ]
}

重新执行生成任务后,生成的Car类会自动带上类级别的@JsonNaming注解,以及每个字段对应的@JsonProperty注解,示例如下:

@Schema(name = "Car", description = "Car request payload")
@Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2023-12-06T10:01:37.820309+02:00[Europe/Helsinki]")
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
public class Car {

    @JsonProperty("total_price")
    private Long totalPrice;

    @JsonProperty("color")
    private String color;

    @JsonProperty("year_and_model")
    private String yearAndModel;

    // getter/setter方法
}

2. 确保全局Jackson配置生效

若上述生成器配置仍未解决问题,可通过自定义ObjectMapper Bean强制全局生效:

@Configuration
public class JacksonConfig {
    @Bean
    public ObjectMapper objectMapper() {
        ObjectMapper mapper = new ObjectMapper();
        // 设置蛇形命名策略
        mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);
        // 忽略未知字段,避免请求体额外字段导致反序列化失败
        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        return mapper;
    }
}

注意:确保项目中没有其他自定义ObjectMapper Bean覆盖此配置。

3. 排查Controller接收逻辑

确认Controller方法正确使用@RequestBody注解接收请求体:

@PostMapping("/your-endpoint")
public ResponseEntity<?> handleCarRequest(@RequestBody Car car) {
    // 业务逻辑
    return ResponseEntity.ok(car);
}

4. 日志排查反序列化细节

添加日志配置,查看Jackson反序列化的详细过程,定位字段不匹配问题:

logging.level.org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor=DEBUG
logging.level.com.fasterxml.jackson.databind=DEBUG

通过日志可确认请求体是否正确传递,以及Jackson是否尝试匹配对应字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 12:46:08