Apa tujuan dasar @SerializedNameanotasi di Android menggunakan Gson?
Beri saya beberapa contoh berbeda. Saya tidak mengerti tujuan utama menggunakannya.
Apa tujuan dasar @SerializedNameanotasi di Android menggunakan Gson?
Beri saya beberapa contoh berbeda. Saya tidak mengerti tujuan utama menggunakannya.
Jawaban:
Contoh kelas Java,
public class Person {
@SerializedName("name")
private String personName;
@SerializedName("bd")
private String birthDate;
}
Kelas ini memiliki dua bidang yang mewakili nama orang dan tanggal lahir seseorang. Bidang ini diberi anotasi dengan anotasi @SerializedName . Parameter (nilai) dari anotasi ini adalah nama yang akan digunakan kapan serialisingdan deserialisingobjek. Misalnya, bidang personName Java direpresentasikan sebagai nama di JSON.
Contoh JSON,
{
"name":"chintan",
"bd":"01-01-1990"
}
Jsonsangat membantu
Sudah ada beberapa jawaban di sini, tetapi saya ingin menambahkan bahwa jika Anda menggunakan ProGuarduntuk mengaburkan kode Anda & tidak digunakan @SerializedName("name")di kelas model Anda, maka GSON Anda tidak akan berfungsi. Karena karena kebingungan, nama variabel Anda mungkin telah berubah dari String namemenjadi String amengakibatkan penguraian GSON rusak karena GSON akan mencari kunci ake json & itu akan gagal.
Dengan menentukan @SerializedName, GSON tidak akan mencari di json berdasarkan nama variabel & hanya akan menggunakan yang ditentukan @SerializedName.
Tentu saja Anda dapat memberi tahu proguard untuk tidak mengaburkan model Anda, tetapi jika Anda ingin model dikaburkan, Anda harus menentukan @SerializedName
Anda dapat menginstruksikan Proguard untuk tidak mengaburkan kelas data Anda dengan menentukan @Keep di atas kelas. Ini tidak akan menghapus atau mengaburkan kelas Anda. Tidak perlu menambahkan @SerializedName ke setiap kolom secara eksplisit jika nama kolom mirip dengan kunci Json yang digunakan untuk itu.