java json 定义_如何在Java中定义JSON字段名称的命名约定?

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:序列化为JSON格式时,将确保Java字段名称的第一个“字母”大写。

FieldNamingPolicy.UPPER_CAMEL_CASE_WITH_SPACES:当序列化为其JSON格式时,它将确保Java字段名称的第一个“字母”大写,并且单词将由空格分隔。

示例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"

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值