【发布时间】:2021-09-13 14:16:54
【问题描述】:
我有一个如下格式的 json 对象,我需要将 Json 中的值分配给 java 对象,但是 JSON 和类中的标签名称不同。
{
FirstName: "Sample",
LastName: "LName",
Address: [
{
type: "Temp",
street: "test stree",
},
{
type: "Perm",
street: "test stree",
}
]
}
Class Parent{
private String Name1;
private String Nama2;
private List<Address> address;}
Class Address{
Private String type;
private String data;
}
我想使用 Java 反射来实现自定义对象映射器。映射如下,但我不知道如何实现这个,任何有价值的建议或外部 api 的使用都会帮助我实现这个场景。
Json 对象名称 Jave 类对象名称
名字 ---------- Name1
姓 ---------- 姓名2
Address.type -------- 地址类类型
Address.street ----- 地址类数据
【问题讨论】:
-
这里为什么要使用反射?为什么不提供一个自定义的反序列化器,或者通过 Jackson 的注解或 mixins 将映射添加到
Parent和Address? -
嗨,Thomas,请让我知道如何在此处使用自定义反序列化器,尽管使用反射我们需要在运行时获取字段并将值设置为类,因为我们正在使用它种映射的第一次..
-
好吧,你可以看看这里:baeldung.com/jackson-deserialization 但是,类本身的
@JsonProperty注释或它们的 mixins 可能是更简单的选择。
标签: java reflection objectmapper