Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

การใช้ @SerializedName Annotation กับ Gson ใน Java


Annotation @SerializedName สามารถใช้เพื่อ serialize field ด้วยชื่อที่ต่างจากชื่อ field จริงได้ เราสามารถระบุชื่อที่คาดหวังในการ serialize เป็น attribute ของ annotation ได้ Gson จะรับผิดชอบในการอ่านหรือเขียน field ด้วยชื่อที่ให้มา

Syntax

@Retention(value=RUNTIME)
@Target(value={FIELD,METHOD})
public @interface SerializedName

ตัวอย่าง

import com.google.gson.*;
import com.google.gson.annotations.*;

public class SerializedNameTest {
    public static void main(String args[]) {
        Gson gson = new GsonBuilder().setPrettyPrinting().create();
        Person person = new Person(115, "Raja Ramesh", "Hyderabad");
        String jsonStr = gson.toJson(person);
        System.out.println(jsonStr);
    }
}

// Person class
class Person {
    @SerializedName("id")
    private int personId;
    
    @SerializedName("name")
    private String personName;
    
    private String personAddress;
    
    public Person(int personId, String personName, String personAddress) {
        this.personId = personId;
        this.personName = personName;
        this.personAddress = personAddress;
    }
    
    public int getPersonId() { return personId; }
    public String getPersonName() { return personName; }
    public String getPersonAddress() { return personAddress; }
}

Output

{
  "id": 115,
  "name": "Raja Ramesh",
  "personAddress": "Hyderabad"
}