آموزش GSON - قسمت هفتم - تغییر اسامی فیلدها در سریالایز و دیسریالایز
چهارشنبه, ۱۲ آذر ۱۳۹۹، ۰۹:۰۸ ق.ظ
انوتیشن SerializedName:
این انوتیشن اسامی فیلدها رو در سریالایزر و دیسریالایزر تغییر میده. اینجوری استفاده میشه:
public class User {
@SerializedName("full_name")
private String name;
private String email;
private int age;
private Boolean isDeveloper;
public User(String name, String email, int age, Boolean isDeveloper) {
this.name = name;
this.email = email;
this.age = age;
this.isDeveloper = isDeveloper;
}
}
در این حالت برای دیسریالایز مشکل داریم و فیلد name نال خواهد بود. چرا؟ چون در دیسریالایز دنبال فیلدی به نام full_name میگرده و پیداش نمیکنه. برای حل این مشکل این انوتیشن را به صورت زیر استفاده میکنیم:
@SerializedName(value = "full_name", alternate = "name")
private String name;
یعنی فقط در دیسریالایز دنبال فیلدی به نام full_name یا name بگرد. (alternate فقط برای دیسریالایز هست)
alternate میتونه چند تا مقدار بگیره که توی آکولاد نوشته میشه.
۹۹/۰۹/۱۲