Jadi pada tulisan ini saya ingin membagikan bagaimana cara mendapatkan value ketika response berganti atau memiliki beberapa varian. Misalnya field kita harus ambil source_id namun ketika value itu tidak ada kita ambil dari field id. Apakah kalian paham? jika belum coba lihat response berikut ini ya :
{
"code" : "200"
"message" : "submit success"
"data" : {
"submit_id" : "12345",
"user" : "xcc123"
}
}
{
"code" : "200"
"message" : "submit success"
"data" : {
"id" : "12345",
"user" : "xcc123"
}
}
Kedua response tersebut memiliki format yang hampir sama, bedanya adalah field id dan submit_id. Ketika kalian memiliki case dimana harus mengambil id atau submit_id maka inilah yang kita bahas. saya juga agak sulit memberi judulnya ya hehe
Untuk mengatasi hal tersebut teman-teman bisa menggunakan code seperti ini :
import com.google.gson.annotations.SerializedName
data class Store(
@SerializedName("store_id", alternate = ["id"])
val storeId: Int,
@SerializedName("user")
val user: String
)
Cukup gampang ya mengatasinya, ini juga biasanya digunakan ketika teman-teman berurusan varian bahasa namun valuenya dari response API. Demikianlah, semoga bermanfaat ya teman-teman 🙂
Note :
- Backward Compatibility:
- Ini mengacu pada kemampuan sistem untuk bekerja dengan versi lama dari data atau API. Dalam kasus ini, data JSON yang mungkin memiliki variasi dalam penamaan kunci (misalnya,
store_id
vsid
). - Dengan menggunakan fitur seperti
@SerializedName
denganalternate
, Anda dapat memastikan bahwa aplikasi Anda tetap kompatibel dengan data yang dihasilkan oleh versi API sebelumnya atau oleh berbagai sumber yang mungkin memiliki variasi dalam struktur data mereka.
- Ini mengacu pada kemampuan sistem untuk bekerja dengan versi lama dari data atau API. Dalam kasus ini, data JSON yang mungkin memiliki variasi dalam penamaan kunci (misalnya,
- Version Compatibility:
- Ini berhubungan dengan bagaimana aplikasi Anda dapat menangani berbagai versi dari data atau API. Dalam API yang berkembang, kadang-kadang nama kunci di JSON berubah seiring waktu. Dengan mendukung banyak nama kunci, Anda memastikan aplikasi Anda dapat menangani data dari berbagai versi API tanpa memerlukan perubahan kode yang signifikan.