Giriş
Genellikle TypeAdapter arayüzünden kalıtan ve kendimize mahsus JSON serialization ve deserialization yapabilmemizi sağlayan sınıfı belirtmek için
kullanılır.
Örnek
Elimizde şöyle bir kod
olsun.
public class User() {
private String name;
private String email;
@JsonAdapter(AddressSerializer.class)
private Address address;
...
}
Elimizde şöyle bir kod
olsun.
public class AddressSerializer implements JsonSerializer<Address> {
@Override
public JsonElement serialize(Address src,Type typeOfSrc,JsonSerializationContext ctx) {
JsonObject jsonAddress = new JsonObject();
jsonAddress.addProperty("address_line1", src.getAddressLine1());
jsonAddress.addProperty("address_line2", src.getAddressLine2());
jsonAddress.addProperty("address_city", src.getCity());
jsonAddress.addProperty("address_postalcode", src.getPostcode());
return jsonAddress;
}
}
Çıktı olarak şunu
alırız
{
"name": "ana",
"email": "test@test.co.uk",
"address": {
"address_line1": "123 Some Address",
"address_line2": "",
"address_city": "My city",
"address_postalcode": "CV31 9GP"
}
}