Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jackson的json解析_Java_Json_Jackson_Nested - Fatal编程技术网

Java jackson的json解析

Java jackson的json解析,java,json,jackson,nested,Java,Json,Jackson,Nested,我正在使用将JSON字符串转换为Java对象 我的json是: { "human":{ "fname":"anjali", "lname":"malhotra" } } 我希望将其转换为具有以下结构的Java类: public class Human { String fname; String lname; } 我可以成功地将其转换为 public class HumanWrapper { Human human; } 但是,我想知

我正在使用将JSON字符串转换为Java对象

我的json是:

{  
   "human":{  
      "fname":"anjali",
      "lname":"malhotra"
   }
}
我希望将其转换为具有以下结构的Java类:

public class Human
{
  String fname;
  String lname;
}
我可以成功地将其转换为

public class HumanWrapper
{
  Human human;
}

但是,我想知道是否有一种方法可以直接将其转换为人类格式。我读过关于自定义反序列化的内容,但不太愿意采用这种方法。

您可以通过将ObjectMapper配置为使用:

以及使用注释为您的
Human
类添加注释:

@JsonRootName("human")
public class Human {
....
}

您需要有一个
HumanWrapper
类,因为您的人工对象是在json对象中定义的

{
    "human": {
    }
}
如果您能够将API更改为只发送一个像这样的
human
对象

{  
  "fname":"anjali",
  "lname":"malhotra"
}

这样,您就不必费心在我的组织的当前框架中使用
HumanWrapper

,更改API响应是不可能的。我觉得仅仅为此添加一个包装可能不是最好的方法谢谢。。我将尝试并更新结果。相关问题:-您可以使用
反序列化功能。展开根值
功能。您可以在此处找到示例:,
{  
  "fname":"anjali",
  "lname":"malhotra"
}