The FieldNamingPolicy can be used to define a few standard naming conventions for JSON field names and it can be used in conjunction with GsonBuilder to configure a Gson instance to properly translate Java field names into the desired JSON field names. We can use the setFieldNamingPolicy() method of GsonBuilder to configure a specific naming policy strategy to an object's field during serialization and deserialization.
Gson supports varIoUs field naming requirements with following field naming policies
- FieldNamingPolicy.IDENTITY: It uses the exact same naming as the Java model when it serializes an object.
- FieldNamingPolicy.LOWER_CASE_WITH_UNDERscoreS: It modifies a Java field name from its camel-cased form to a lower case field name where each word is separated by an underscore(_).
- FieldNamingPolicy.LOWER_CASE_WITH_DASHES: It modifies the Java field name from its camel-cased form to a lower case field name where each word is separated by a dash(-).
- FieldNamingPolicy.UPPER_CAMEL_CASE: It will ensure that the first "letter" of the Java field name is capitalized when serialized to its JSON form.
- FieldNamingPolicy.UPPER_CAMEL_CASE_WITH_SPACES: It will ensure that the first "letter" of the Java field name is capitalized when serialized to its JSON form and the words will be separated by a space.
Example
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中定义JSON字段名称的命名约定?的详细内容,更多请关注编程之家其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。