JSON.toJSONString(master) 怎样实现 json的key值 是 @JSONField(name = "Account Name") 注解中的值,而不是 属性名
时间: 2025-07-05 08:06:08 浏览: 6
### 使用 `@JSONField` 注解实现自定义 JSON 键名
当使用 FastJSON 序列化 Java 对象到 JSON 字符串时,默认情况下会采用对象属性名称作为键名。为了自定义这些键名,可以利用 `@JSONField` 注解来指定不同的键名。
#### 定义实体类并应用 `@JSONField`
假设有一个名为 `Student` 的实体类,其中包含一些基本字段:
```java
package com.ynnz.entity;
import com.alibaba.fastjson.annotation.JSONField;
public class Student {
private String id;
@JSONField(name = "Account Name")
private String name;
private String gender;
private int age;
// 构造函数、getter 和 setter 方法省略
public Student(String id, String name, String gender, int age) {
this.id = id;
this.name = name;
this.gender = gender;
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", gender='" + gender + '\'' +
", age=" + age +
'}';
}
}
```
在这个例子中,在 `name` 属性上添加了 `@JSONField(name = "Account Name")` 注解[^1]。
#### 测试序列化过程
接下来编写一个简单的测试程序来进行验证:
```java
package com.ynnz.test;
import com.alibaba.fastjson.JSON;
import com.ynnz.entity.Student;
public class TestCustomKeyNames {
public static void main(String[] args) {
// 创建学生实例
Student stu1 = new Student("1001", "张三", "男", 20);
// 将对象转换成 JSON 字符串
String jsonString = JSON.toJSONString(stu1);
System.out.println("原始对象:" + stu1);
System.out.println("JSON 表达形式:" + jsonString);
// 反序列化回对象
Student parsedStudent = JSON.parseObject(jsonString, Student.class);
System.out.println("反序列化的对象:" + parsedStudent);
}
}
```
运行上述代码将会看到输出中的 JSON 字符串里 `"name"` 被替换成了 `"Account Name"`,而其他部分保持不变。
阅读全文
相关推荐





