考虑这个JSON
{
"data":
{
"id": 1,
"name": "Sergey"
}
}
假设,我希望它被反序列化为
Data<Person> person;
假设Person
是一个具有规范构造函数的简单类
public class Person {
private int id;
private String name;
public Person(int id, String name) {
this.id = id;
this.name = name;
}
}
假设Data
有点棘手:它是通用的,并且它的示例化依赖于静态工厂方法。它的无参数构造函数是private
,不应该在其他任何地方使用
public final class Data<T> {
private final T data;
private Data(T data) {
this.data = data;
}
public static <T> Data<T> build(T data) {
return new Data<>(data);
}
}
如何让Jackson以最简洁、最有效的方式执行反序列化?this Baeldung article是否提供了此问题的示例性解决方案?我听说它现在偶尔使用AI生成的文本,所以我想确保我不能以更短更清晰的方式实现它
1条答案
按热度按时间koaltpgm1#
**步骤1.**将所有参数和工厂方法标注为
@JsonCreator
**步骤2.**注册
ParameterNamesModule
。这将帮助Jackson将构造函数/工厂方法参数自动Map到它们的同名字段**步骤3.**确保创建并传递
TypeReference
对象