Hi dev, adakah diantara kalian yang paham tentang beberapa anotasi yang terdapat dalam library Gson? Salah satunya adalah @SerializedName
.
Saat itu, saya cukup kesulitan memahami itu sebelum seseorang bisa menjelaskannya sambil memberikan contoh dalam studi kasus nyata.
Setelah memperbanyak jam terbang untuk terlibat dalam berbagai kasus pengembangan aplikasi Android, akhirnya saya baru paham tujuan dibuatnya anotasi tersebut.
Naming Convention
Yup, teman-teman pasti tahu tentang standar penamaan dalam lingkungan java, secara umum dalam dunia pemrograman yang mengadopsi paradigma OOP sudah pasti mensyaratkan standar penamaan tersebut, merskipun dalam praktiknya, masing-masing platform memiliki standarnya masing-masing.
Contoh, jika Anda adalah pengembang .NET, maka sudah wajar jika Anda memberikan nama untuk setiap Class ataupun Variabel sebagai PascalCase
. Di lain sisi, jika Anda adalah pengembang aplikasi mobile seperti Android misalnya, maka sudah sewajarnya jika standar yang Anda gunakan adalah camelCase
. Sementara itu, jika kalian adalah pengembang web php atau database backend, maka tak heran jika penamaan variabelnya menggunakan snake_case
.
Lintas standar semacam itu perlu di atasi dengan cara @SerializeName
agar tidak terjadi kekisruhan antar platform.
Oke, karena kebetulan saya adalah Andriod developer, jadi saya akan menggunakan contoh java. Studi kasusnya adalah kita mengkonsumsi API yang memberikan respon object json, simana setiap property-nya dinamai menggunakan standar snake_case
. Maka cara kita men-transformasikan ke dalam standar java adalah dengan menggunkan @SerializeName
.
Contoh Respon Json User
{
"first_name": "tejo",
"birth_date": "02-02-2000"
}
Contoh Data Class Person
public class Person {
@SerializedName("first_name")
private String personName;
@SerializedName("birth_date")
private String birthDate;
}
Jadi seperti itu, sedangkan untuk anotasi Deserialising akan kami bahas di kesempatan lain, dan di postingan lain.