Object Mapper 将json格式转换为对象,java

问题描述

我有一堂课:

public class Parent{
   private Child child;

}

public class Child{
  String name;
  String surname;
}

我得到了一个 json 格式的信息正文,有两种类型:

1.

   {
    "child"{
      "name":"TOM"
      "surname":"Finn"
            }
    }
  {
    "name":"TOM"
    " surname": "Finn"
   }

当我尝试执行以下操作时: Parent parent = objectmapper.convertvalue(body,Parent.class)

在第一种类型的主体中没问题,但在第二种类型中我得到错误 IllegalArgumentException

如何解决两种类型的正文都将被接受的问题?

解决方法

您在 JSON 中没有逗号并且在 surname 字符串中有空格。并且 child 也必须在括号中。试试这个:

{
  "child": {
    "name":"TOM","surname": "Finn"
  }
}

阅读有关 JSON 格式的信息。规则并不多,但你应该遵守。

编辑:

如果您确定您的 JSON 是正确的,您可以专注于您的课程。 ObjectMapper 需要 getter 或 setter 才能工作,或者您不必使用 setVisibility() 更改默认配置。

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

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