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.
@MuhammadAli senang membantu Anda. Anda juga dapat memberi saya kredit dengan suara positif dan menerima jawaban sayangku :)
Chintan Rathod
3
Para pemilih negatif, silakan tambahkan komentar Anda sehingga saya dapat memahami apa tujuan dari suara negatif dan saya dapat meningkatkan jawaban saya dan seterusnya .. :)
Chintan Rathod
4
Jawaban bagus .... Langsung ke intinya .... Contoh dengan Jsonsangat membantu
Devrath
Senang bisa membantu. :)
Chintan Rathod
1
Sangat membantu !! ; Terima kasih banyak :) @ChintanRathod
Imran
64
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
Info Gr8, saya biasa memberi tahu proguard untuk tidak mengaburkan model. Sekarang, dengan ini saya bisa melakukannya. :)
akashPatra
1
Ini sangat penting. Hilang 2 jam dan telah menambahkan @SerializedName di mana-mana.
Abhijit Kurane
2
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.
Jawaban:
Contoh kelas Java,
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
serialising
dandeserialising
objek. Misalnya, bidang personName Java direpresentasikan sebagai nama di JSON.Contoh JSON,
sumber
Json
sangat membantuSudah ada beberapa jawaban di sini, tetapi saya ingin menambahkan bahwa jika Anda menggunakan
ProGuard
untuk 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 dariString name
menjadiString a
mengakibatkan penguraian GSON rusak karena GSON akan mencari kuncia
ke 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
sumber
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.
sumber