Spring-boot中的嵌套JSON对象反序列化

我在作为请求主体的Spring-boot中反序列化嵌套JSON时遇到一些问题。

有人可以帮我吗?

以下是JSON的结构。

{
  "service": {
    "week": {
      "sunday": "onene",
      "monday": "two",
      "tuesday": "three"
    },
    "body": {
      "parts": {
        "head": "one",
        "hand": "two"
      }
    }
  }
}

我是否需要创建零件的POJO并将其用作正文中的变量,然后创建Week POJO,最后在Service POJO中使用week和body的对象类型?那行得通吗?

还是有更好的方法?

抱歉,我无法在此处发布实际的JSON。因此,我提供了一个示例结构。

评论
uet
uet

您需要创建POJO并在POJO的类级别使用@JsonIgnoreProperties(ignoreUnknown = true)。此注释将忽略未知属性。

com.fasterxml.jackson.annotation.JsonIgnoreProperties

点赞
评论
猪坚强
猪坚强

要反序列化这种结构,您将需要

class Body {
    private Service service;
}

class Service {
    private Week week;
    private Map<String, String> parts;
}

class Week {
    private String sunday;
    private String monday;
    private String tuesday;
    private String wednesday;
    private String thursday;
    private String friday;
    private String saturday;
}

如您所见,我们可以使用Map结构反序列化零件,但是如果零件仅包含预定义键,则可以为其创建一个类

点赞
评论
亲,你左脸
亲,你左脸

是的,pojo结构应与您在问题中所描述的相同:

class Service {

private Week week;
private Body body;

//setters,getters and constructors

}

并声明Week和Body的POJO类及其相应的实例字段。

点赞
评论