Annotation Interface JsonDeserialize
@Target({TYPE,METHOD,FIELD,PARAMETER})
@Retention(RUNTIME)
@Documented
public @interface JsonDeserialize
JSON Deserialize - Specifies Custom Deserializer
JSON 反序列化 - 指定自定义反序列化器
This annotation specifies a custom deserializer for a field, method, class, or parameter. It allows fine-grained control over how JSON values are converted to Java objects.
此注解为字段、方法、类或参数指定自定义反序列化器。 它允许对 JSON 值如何转换为 Java 对象进行细粒度控制。
Example | 示例:
public class Order {
@JsonDeserialize(using = MoneyAdapter.class)
private Money totalPrice;
@JsonDeserialize(contentUsing = ItemAdapter.class)
private List<Item> items;
@JsonDeserialize(as = LinkedHashMap.class)
private Map<String, Object> metadata;
@JsonDeserialize(builder = Order.Builder.class)
public static class ImmutableOrder { }
}
Features | 主要功能:
- Custom deserializer for values - 值的自定义反序列化器
- Custom deserializer for collection elements - 集合元素的自定义反序列化器
- Custom deserializer for map keys - Map 键的自定义反序列化器
- Concrete type specification via
as/contentAs/keyAs- 通过 as/contentAs/keyAs 指定具体类型 - Builder class for immutable types - 不可变类型的 Builder 类
Security | 安全性:
- Thread-safe: Yes (immutable) - 线程安全: 是(不可变)
- Null-safe: N/A - 空值安全: 不适用
- Since:
- JDK 25, opencode-base-json V1.0.0
- Author:
- Leon Soo www.LeonSoo.com
- See Also:
-
Optional Element Summary
Optional ElementsModifier and TypeOptional ElementDescriptionClass<?> The concrete type to deserialize the value as.Class<?> The builder class to use for constructing immutable types.Class<?> The concrete type to deserialize collection/array elements as.Class<? extends JsonTypeAdapter<?>> The deserializer class to use for collection/array elements.Class<?> The concrete type to deserialize map keys as.Class<? extends JsonTypeAdapter<?>> The deserializer class to use for map keys.Class<? extends JsonTypeAdapter<?>> The deserializer class to use for the annotated value.
-
Element Details
-
using
Class<? extends JsonTypeAdapter<?>> usingThe deserializer class to use for the annotated value. 用于注解值的反序列化器类。- Returns:
- the deserializer class, or
JsonTypeAdapter.None.classfor default - 反序列化器类,JsonTypeAdapter.None.class表示使用默认
- Default:
cloud.opencode.base.json.adapter.JsonTypeAdapter.None.class
-
contentUsing
Class<? extends JsonTypeAdapter<?>> contentUsingThe deserializer class to use for collection/array elements. 用于集合/数组元素的反序列化器类。- Returns:
- the content deserializer class - 内容反序列化器类
- Default:
cloud.opencode.base.json.adapter.JsonTypeAdapter.None.class
-
keyUsing
Class<? extends JsonTypeAdapter<?>> keyUsingThe deserializer class to use for map keys. 用于 Map 键的反序列化器类。- Returns:
- the key deserializer class - 键反序列化器类
- Default:
cloud.opencode.base.json.adapter.JsonTypeAdapter.None.class
-
as
Class<?> asThe concrete type to deserialize the value as. 将值反序列化为的具体类型。Useful for deserializing interface or abstract types to concrete implementations.
用于将接口或抽象类型反序列化为具体实现。
- Returns:
- the target type, or
Void.classfor default - 目标类型,Void.class表示使用默认
- Default:
java.lang.Void.class
-
contentAs
Class<?> contentAsThe concrete type to deserialize collection/array elements as. 将集合/数组元素反序列化为的具体类型。- Returns:
- the content target type - 内容目标类型
- Default:
java.lang.Void.class
-
keyAs
Class<?> keyAsThe concrete type to deserialize map keys as. 将 Map 键反序列化为的具体类型。- Returns:
- the key target type - 键目标类型
- Default:
java.lang.Void.class
-
builder
Class<?> builderThe builder class to use for constructing immutable types. 用于构造不可变类型的 Builder 类。The builder class should follow the builder pattern with a
build()method that returns the target type.Builder 类应遵循构建者模式,包含返回目标类型的
build()方法。- Returns:
- the builder class, or
Void.classif not applicable - Builder 类,Void.class表示不适用
- Default:
java.lang.Void.class
-