Computer >> Máy Tính >  >> Lập trình >> Java

Làm cách nào để triển khai JsonAdapter tùy chỉnh bằng Gson trong Java?


@JsonAdapte Chú thích r có thể được sử dụng ở cấp trường hoặc cấp để chỉ định Gson. TypeAdapter lớp có thể được sử dụng để chuyển đổi các đối tượng Java sang và từ JSON. Theo mặc định, thư viện Gson chuyển đổi các lớp ứng dụng thành JSON bằng cách sử dụng bộ điều hợp loại tích hợp nhưng chúng tôi có thể ghi đè nó bằng cách cung cấp bộ điều hợp loại tùy chỉnh.

Cú pháp

@Retention(value=RUNTIME)
@Target(value={TYPE,FIELD})
public @interface JsonAdapter

Ví dụ

import java.io.IOException;
import com.google.gson.Gson;
import com.google.gson.TypeAdapter;
import com.google.gson.annotations.JsonAdapter;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
public class JsonAdapterTest {
   public static void main(String[] args) {
      Gson gson = new Gson();
      System.out.println(gson.toJson(new Customer()));
   }
}
// Customer class
class Customer {
   @JsonAdapter(CustomJsonAdapter.class)
   Integer customerId = 101;
}
// CustomJsonAdapter class
class CustomJsonAdapter extends TypeAdapter<Integer> {
   @Override
   public Integer read(JsonReader jreader) throws IOException {
      return null;
   }
   @Override
   public void write(JsonWriter jwriter, Integer customerId) throws IOException {
      jwriter.beginObject();
      jwriter.name("customerId");
      jwriter.value(String.valueOf(customerId));
      jwriter.endObject();
   }
}

Đầu ra

{"customerId":{"customerId":"101"}}