Annotation @SerializedName của Gson cho phép serialize field thành JSON với tên được cung cấp. Annotation này ghi đè bất kỳ FieldNamingPolicy nào bao gồm policy mặc định có thể set trên instance Gson. Policy đặt tên khác có thể set bằng class GsonBuilder.
Cú pháp
@Retention(value=RUNTIME) @Target(value={FIELD,METHOD}) public @interface SerializedName
Ví dụ
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; } }
Kết quả
{ "first_name": "Rahul", "last_name": "Dev", "age": 30, "address": "Nagpur" }