如何在 Java 中定义 JSON 字段名称的命名约定?
javajsonobject oriented programmingprogramming更新于 2025/6/27 10:20:17
FieldNamingPolicy 可用于定义一些 JSON 字段名称的标准命名约定,并可与 GsonBuilder 结合使用,以配置 Gson 实例 ,以将 Java 字段名称正确转换为所需的 JSON 字段名称。我们可以使用 GsonBuilder 的 setFieldNamingPolicy() 方法在 序列化 和 反序列化 期间为对象的字段配置特定的命名策略策略。
Gson 支持各种字段命名要求,字段命名策略如下
- FieldNamingPolicy.IDENTITY:它在序列化对象时使用与 Java 模型完全相同的命名。
- FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES:它将 Java 字段名称从其驼峰式形式修改为小写字段名称,其中每个单词由下划线 (_)。
- FieldNamingPolicy.LOWER_CASE_WITH_DASHES:它将 Java 字段名称从其驼峰式格式修改为小写字段名称,其中每个单词由破折号 (-) 分隔。
- FieldNamingPolicy.UPPER_CAMEL_CASE:它将确保 Java 字段名称的第一个"字母"在序列化为其 JSON 格式时大写。
- FieldNamingPolicy.UPPER_CAMEL_CASE_WITH_SPACES:它将确保 Java 字段名称的第一个"字母"在序列化为其 JSON 格式时大写,并且单词之间将由空格分隔。
示例
import com.google.gson.*;
import java.sql.Date;
import java.time.LocalDate;
public class FieldNamingPolicyTest {
public static void main(String[] args) {
Gson gson = new GsonBuilder().setPrettyPrinting().setDateFormat("yyyy-MM- dd") .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_DASHES).create(); Person p = new Person("Raja", "Ramesh", 30, Date.valueOf(LocalDate.of(1988, 1, 1)));
String jsonStr = gson.toJson(p);
System.out.println(jsonStr);
}
}
// Person class
class Person {
private String fistName;
private String lastName;
private int _age;
private Date dateOfBirth;
public Person(String fistName, String lastName, int _age, Date dateOfBirth) {
super();
this.fistName = fistName;
this.lastName = lastName;
this._age = _age;
this.dateOfBirth = dateOfBirth;
}
}
输出
{
"fist-name": "Raja",
"last-name": "Ramesh",
"_age": 30,
"date-of-birth": "1988-01-01"
}
相关文章
有用资源
java 参考教程 - 该教程包含有关 java 的更多信息:https://www.cainiaomax.com/java/

