对象映射器将json格式转换为对象,java

对象映射器将json格式转换为对象,java,java,json,data-binding,objectmapper,fasterxml,Java,Json,Data Binding,Objectmapper,Fasterxml,我有一门课: public class Parent{ private Child child; } public class Child{ String name; String surname; } 我得到了一个信息体,作为两种类型的json格式: 一, 当我尝试做以下事情时: Parent-Parent=objectmapper.convertvalue(body,Parent.class) 在第一种类型的主体中,它是可以的,但在第二种主体中,我得到了错误Illega

我有一门课:

public class Parent{
   private Child child;

}

public class Child{
  String name;
  String surname;
}
我得到了一个信息体,作为两种类型的
json
格式:

一,

  • 当我尝试做以下事情时:
    Parent-Parent=objectmapper.convertvalue(body,Parent.class)

    在第一种类型的主体中,它是可以的,但在第二种主体中,我得到了错误
    IllegalArgumentException


    我如何修复这两种类型的主体都被接受的问题?

    JSON中没有逗号,而姓氏字符串中有空格。和
    child
    也必须放在括号中。试试这个:

    {
      "child": {
        "name":"TOM",
        "surname": "Finn"
      }
    }
    
    阅读JSON格式。规则不多,但你应该遵守

    编辑:

    如果您确信您的JSON是正确的,那么您可以关注您的类。
    ObjectMapper
    需要getter或setter才能工作,或者您必须使用
    setVisibility()
    更改默认配置

    其次,使用
    readValue()
    方法代替
    convertValue()


    如果您仍有问题需要处理,您可以在此阅读有关
    ObjectMapper
    的更多信息。

    首先,您没有输入有效的jsonI编辑了我的答案,请检查它是否有助于您解决问题谢谢,我添加了Getter和Setter。但问题在于body,我从json中得到了body。第一次,我得到了带有子对象的父对象。第二次我只得到了一个子对象,我需要将它添加到父类中。好的,在这种情况下,您需要的就是在mapper中更改destiny类
    objectmapper.readValue(body,Child.class)
    并在获得class
    Child
    的对象后,调用父类的构造函数。
      {
        "name":"TOM"
        " surname": "Finn"
       }
    
    {
      "child": {
        "name":"TOM",
        "surname": "Finn"
      }
    }