"name".">
 Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Sử dụng annotation @SerializedName với Gson trong Java


Annotation @SerializedName có thể được dùng để serialize một field với tên khác thay vì tên field thực tế. Chúng ta có thể cung cấp tên serialize mong đợi dưới dạng thuộc tính annotation, Gson sẽ đảm bảo đọc/ghi field với tên được cung cấp.

Cú pháp

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

Ví dụ

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);
    }
}

// Lớp Person
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; }
}

Kết quả

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

Giải thích: Field personId được serialize thành "id", personName thành "name", còn personAddress giữ nguyên tên vì không có annotation.