如何在 Java 中使用 Gson 实现自定义 JsonAdapter?
javajsonobject oriented programmingprogramming更新于 2025/7/26 11:24:17
可以在字段或类级别使用 @JsonAdapter 注释来指定 Gson。TypeAdapter 类可用于将 Java 对象转换为 JSON 或从 JSON 转换为 Java 对象。默认情况下,Gson 库使用内置类型适配器将应用程序类转换为 JSON,但我们可以通过提供自定义类型适配器来覆盖它。
语法
@Retention(value=RUNTIME)
@Target(value={TYPE,FIELD})
public @interface JsonAdapter
示例
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();
}
}
输出
{"customerId":{"customerId":"101"}}
相关文章
有用资源
java 参考教程 - 该教程包含有关 java 的更多信息:https://www.cainiaomax.com/java/
打印
下一节:在 Java 中使用 Gson 时如何使用 @SerializedName 注释? ❯❮ 上一节:如何使用 Java 中的 Jackson API 将 JsonNode 转换为 ArrayNode?

