在现有模型对象内传递对象,其中未定义新对象参数并且可能会更改

时间:2018-01-24 10:04:09

标签: java json spring-boot jackson

问题:我有一个请求体,我有一个预定义的POJO类,在这个类中我需要添加另一个对象作为参数。在给定时间的这个新对象可以具有随机属性/属性/参数。我怎样才能做到这一点?

{
 "id": "{{id}}",
 "enableTouchId": true,
 "idleLogoutMinutes": 10,
 "platformSpecificPreferences": {
  "ios": {
   "terms": "1234",
   "privacy": "12345"
  },
  "web": {
    "terms" : "abc"
  },
  "android": {
    "newProperty" : "newValue"
  }
 }
}

所以我试图添加的新对象是platformSpecificPreferences,当使用rest调用时,可能会或可能不会显示此处显示的所有属性,这就是为什么我不能将重新定义的POJO类用于platformSpecificPreferences并创建其对象。

解决方案我尝试过: 我想在请求体内使用JsonObject,这就是

@JsonProperty("platformSpecificPreferences")
    private JsonObject platformSpecificPreferences;

但问题是,我无法点击api,因为它不接受此参数并给出404.

提前致谢。

1 个答案:

答案 0 :(得分:0)

你可以使用,必须为platformSpecificPreferences预定义的pojo,但是在pojo中你需要忽略其余调用中没有给出的值!

您可以使用json注释执行此操作:类中的Pojo中的@JsonIgnoreProperties(ignoreUnknown = true)。