Java Json反序列化-将嵌套对象键直接映射到类
我有一个类似-Java Json反序列化-将嵌套对象键直接映射到类,java,json,jackson,gson,Java,Json,Jackson,Gson,我有一个类似- { "type" : "employee", "details" : { "name" : "ABC", "age" : 12, "sex" : "male" } } 还有一个Java类,如- public class Person { String name; String sex; String type; int age; ----getters and setters } 我想知道是否有一种方法可以直接将details对象的属性映射到person类
{
"type" : "employee",
"details" : {
"name" : "ABC",
"age" : 12,
"sex" : "male"
}
}
还有一个Java类,如-
public class Person {
String name;
String sex;
String type;
int age;
----getters and setters
}
我想知道是否有一种方法可以直接将details
对象的属性映射到person类,比如details.name
到person.name
。
我知道这可以通过自定义反序列化程序实现,但我希望避免它。可能是GSON或Jackson提供的一些注释。您可以使用@JsonProperties进行映射有几种方法可以解决这个问题,但我要做的是创建以下类:
public class PersonWrapper {
private String type;
@JsonProperty("details")
private Person person;
}
编辑:
如果您不想添加包装类,可以尝试将
@JsonRootName(value=“details”)
添加到Person
类中。您可以分享一些示例吗?这是我试图避免的。我知道这会管用的。但是为了在给定的类结构中工作,我刚刚编辑了我的答案。我以前从未使用过该注释,但在阅读文档后,它似乎可以满足您的需求。您可能还需要一些配置更改。看,如果没有自定义反序列化程序,我认为您将无法做到这一点。这可以通过@JsonWrapped注释完成。但这是杰克逊已经讨论过但尚未实施的事情,对GSON一无所知。