可以将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); } } //员工阶层 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" }