Jackson序列化大小写问题
常见方案
1.ACCEPT_CASE_INSENSITIVE_PROPERTIES: true
2.property-naming-strategy: SNAKE_CASE
3.@JsonProperty 注解
例如
@Getter
@Setter
public class Student {
    private Integer id;
    private String stuName;
    private String email;
}
前端数据:
{
  "id": 1,
  "stuName": "秋先生",
  "email": "qiu@example.com"
}
ACCEPT_CASE_INSENSITIVE_PROPERTIES: true
application.yml配置
spring:
  jackson:
    mapper:
      ACCEPT_CASE_INSENSITIVE_PROPERTIES: true
- 对字段名大小写不敏感
- stuName、STUNAME、stuname、StuNaMe 都可以匹配
- 不解决下划线与驼峰命名不一致问题
 前端数据
{
  "id": 1,
  "STUNAME": "秋先生",
  "EMAIL": "qiu@example.com"
}
property-naming-strategy: SNAKE_CASE
application.yml配置
spring:
  jackson:
    property-naming-strategy: SNAKE_CASE
- • 解决 驼峰 <-> 下划线 自动映射
- • stuName ↔ stu_name
- •	对大小写敏感(除非再配合 ACCEPT_CASE_INSENSITIVE_PROPERTIES)
 如:
{
  "id": 1,
  "stu_name": "秋先生",
  "email": "qiu@example.com"
}
后端字段是 stuName → 自动映射成功 ✅
但如果前端传 STU_NAME → 接收不到 ❌,除非再开 ACCEPT_CASE_INSENSITIVE_PROPERTIES: true。
@JsonProperty
@Getter
@Setter
public class Student {
    private Integer id;
    @JsonProperty("stu_name")
    private String stuName;
    @JsonProperty("EMAIL")
    private String email;
}
- • 完全按注解指定的字段名来匹配
- • 灵活但冗余,字段多时会很麻烦
- • 不依赖全局配置
{
  "id": 1,
  "stu_name": "秋先生",
  "EMAIL": "qiu@example.com"
}
    如果这篇文章对你有用,可以关注本人微信公众号获取更多ヽ(^ω^)ノ  ~
 
 


 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号