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