如何在 Java 中使用 Gson 重命名 JSON 的属性?
javajsonobject oriented programmingprogramming
Gson @SerializedName 注释可以序列化为 JSON,并使用提供的名称值作为其字段名称。此注释可以覆盖任何 FieldNamingPolicy ,包括可能已在 Gson 实例上设置的默认字段命名策略。可以使用 GsonBuilder 类设置不同的命名策略。
语法
@Retention(value=RUNTIME) @Target(value={FIELD,METHOD}) public @interface SerializedName
示例
import com.google.gson.annotations.*; import com.google.gson.*; public class SerializedNameAnnotationTest { public static void main(String args[]) { Employee emp = new Employee("Rahul", "Dev", 30, "Nagpur"); Gson gson = new GsonBuilder().setPrettyPrinting().create(); // pretty print String jsonStr = gson.toJson(emp); System.out.println(jsonStr); } } // Employee class class Employee { @SerializedName("first_name") private String firstName; @SerializedName("last_name") private String lastName; private int age; private String address; public Employee() { } public Employee(String firstName, String lastName, int age, String address) { super(); this.firstName = firstName; this.lastName = lastName; this.age = age; this.address = address; } public String getFirstName() { return firstName; } public String getLastName() { return lastName; } public int getAge() { return age; } public String getAddress() { return address; } }
输出
{ "first_name": "Rahul", "last_name": "Dev", "age": 30, "address": "Nagpur" }