我正在使用Jackson library将JSON字符串转换为Java对象
我的json是:
{
"human":{
"fname":"anjali",
"lname":"malhotra"
}
}
我希望将其转换为具有以下结构的Java类:
public class Human
{
String fname;
String lname;
}
我可以成功将其转换为
public class HumanWrapper
{
Human human;
}
但是,我想知道是否可以直接将其转换为Human格式。我读过有关自定义反序列化的信息,但不愿采用这种方法。
答案 0 :(得分:1)
您可以通过将ObjectMapper配置为使用DeserializationFeature.UNWRAP_ROOT_VALUE
来实现此目的:
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);
并使用@JsonRootName
注释对Human
类进行注释:
@JsonRootName("human")
public class Human {
....
}
答案 1 :(得分:0)
您需要具有HumanWrapper
类,因为您的人类对象是在json对象中定义的
{
"human": {
}
}
如果您能够更改API以仅发送一个human
对象,例如
{
"fname":"anjali",
"lname":"malhotra"
}
那么您就不必为HumanWrapper