20 Kasım 2019 Çarşamba

Gson @JsonAdapter Anotasyonu

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"
  }
}

Hiç yorum yok:

Yorum Gönder