的Json反序列化 - 映射嵌套对象键直接
我有一个JSON像 -的Json反序列化 - 映射嵌套对象键直接
{
"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
对象的属性与details.name
到Person.name
之类的人员类别的属性。 我知道这可以通过自定义的反序列化器来实现,但我希望避免它。可能是GSON或Jackson提供的一些注释。
您可以使用@JsonProperties映射
你能分享一些例子吗? –
有解决这几个方面,但我会做的是创建下面的类:
public class PersonWrapper {
private String type;
@JsonProperty("details")
private Person person;
}
编辑:
如果您不想添加包装类,您可以尝试将@JsonRootName(value = "details")
添加到您的Person
类中。
这是我想要避免的。我明白这会起作用。但意图在这里在给定的班级结构内工作 –
我刚刚编辑了我的答案。我从来没有使用过这个注释,但是在阅读完文档之后,它似乎会做你想做的事情。您可能还需要一些配置更改。请参阅http://stackoverflow.com/questions/11704255/jackson-json-deserialization-with-root-element – Adam
我不认为你将能够做到这一点没有一个自定义的解串器。这可以通过@JsonWrapped注释完成。但是这个问题已经在jackson讨论过但尚未实现,对GSON不了解。 – Franjavi