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

Spring restTemplate.postForObject映射无法识别带连字符JSON字段如何解决

带连字符JSON字段与Java POJO映射解决方案

方案1:单个字段显式指定映射(推荐少量字段适配场景)

直接在需要匹配带连字符JSON键的POJO属性上添加@JsonProperty注解,手动指定对应的JSON键名即可,修改后的Session类示例如下:

@Getter
@Setter
@JsonIgnoreProperties(ignoreUnknown = true)
public class Session {
        private int age;
        private long expire;
        @JsonProperty("name-with-dashes")
        private String nameWithDashes;
}

该方案无需修改全局配置,灵活度高,适合仅个别字段需要适配的场景。

方案2:全局配置命名转换规则(推荐大量kebab-case字段场景)

如果接口返回的所有JSON字段均为短横线分隔的kebab-case格式,可全局配置Jackson的命名策略,自动完成kebab-case到Java驼峰命名的转换,无需逐个字段加注解:

Spring Boot项目配置

在application.properties中添加如下配置即可全局生效:

spring.jackson.property-naming-strategy=KEBAB_CASE

若使用YAML格式配置,对应写法为:

spring:
  jackson:
    property-naming-strategy: KEBAB_CASE

手动初始化RestTemplate场景

如果是自行创建RestTemplate实例,可手动为其绑定的ObjectMapper设置命名策略:

ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.KEBAB_CASE);
RestTemplate restTemplate = new RestTemplate(
    new MappingJackson2HttpMessageConverter(objectMapper)
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 12:21:02