Skip to content

[BUG] java对象序列化错误,当属性名首字母为大写时,会导致注解JSONField指定的键名失效 #1395

@Xueyu334

Description

@Xueyu334

问题描述

简要描述您碰到的问题。

  1. 使用 JSONObject.toJSONString 方法
  2. 序列化数据
  3. 当属性的首字母大写时,序列化的属性键名会变为小写,注解JSONField指定的键名会失效!

环境信息

请填写以下信息:

  • OS信息: [e.g.:Win11 ]
  • JDK信息: [e.g.:OracleJDK 1.8.0_312]
  • 版本信息:[e.g.:Fastjson2 2.0.27]

重现步骤

如何操作可以重现该问题:

  1. 使用 JSONObject.toJSONString 方法
  2. 序列化数据
  3. 当属性的首字母大写时,序列化的属性键名会变为小写,注解JSONField指定的键名会失效!

//可在此输入示例代码

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {


    @JSONField(name = "Name111")
    private String Name;


    public static void main(String[] args) {
        System.out.println(JSONObject.toJSONString(new User("as")));
    }
}



### 期待的正确结果
*对您期望发生的结果进行清晰简洁的描述。*


### 相关日志输出
*请复制并粘贴任何相关的日志输出。*
{"name":"as"}

#### 附加信息
*如果你还有其他需要提供的信息,可以在这里填写(可以提供截图、视频等)。*

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingfixed

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions