Spring Boot返回实体字段变为小写,如何改为驼峰格式?
解决Spring Boot返回JSON保持驼峰命名的方法
Spring Boot默认使用Jackson序列化JSON,你的情况应该是Jackson被配置成了全小写命名策略,以下几种方法可以让返回的JSON字段保持实体类的驼峰格式:
一、全局配置(推荐)
1. 通过配置文件设置
如果使用application.properties,添加以下配置:
spring.jackson.property-naming-strategy=DEFAULT
如果使用application.yml,配置如下:
spring: jackson: property-naming-strategy: DEFAULT
DEFAULT对应Jackson默认的驼峰命名策略,会直接映射实体类的驼峰字段名。
2. 通过代码自定义Jackson配置
创建配置类,注册自定义的Jackson配置Bean:
import com.fasterxml.jackson.databind.PropertyNamingStrategies; import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class JacksonConfig { @Bean public Jackson2ObjectMapperBuilderCustomizer jacksonCustomizer() { return builder -> builder.propertyNamingStrategy(PropertyNamingStrategies.LOWER_CAMEL_CASE); } }
LOWER_CAMEL_CASE就是标准的驼峰命名策略,会严格对应实体类的字段格式。
二、局部配置(针对单个类或字段)
1. 给字段添加@JsonProperty注解
如果只想指定某个字段的输出格式,直接在字段上标注:
public class Product { private Integer pid; @JsonProperty("pName") private String pName; private Integer pQuantity; private Double pPrice; // 构造器、getter、setter省略 }
这样该字段序列化后会输出为pName,而非全小写的pname。
2. 给实体类添加@JsonNaming注解
如果整个实体类都需要保持驼峰格式,在类上添加注解:
import com.fasterxml.jackson.databind.annotation.JsonNaming; import com.fasterxml.jackson.databind.PropertyNamingStrategies; @JsonNaming(PropertyNamingStrategies.LOWER_CAMEL_CASE) public class Product { private Integer pid; private String pName; private Integer pQuantity; private Double pPrice; // 构造器、getter、setter省略 }
补充说明
如果项目引入了Gson等其他JSON处理库,需要对应调整该库的命名策略配置。但Spring Boot默认使用Jackson,优先采用上述Jackson相关配置即可。
内容的提问来源于stack exchange,提问作者Mayur Ghadage
相关产品推荐
相关产品推荐

