Jackson:生成具有互斥属性的模式

wd2eg0qa  于 2022-11-08  发布在  其他
关注(0)|答案(1)|浏览(120)

我想为我的POJO生成一个JSON模式,并强制执行只能设置一个属性的约束。

class MyClass
{
   int a;

   int b;
}

并且我需要生成以下模式(或等效模式)。

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "object",
   "oneOf": [
     {"required": ["a"],  "not":  {"required": ["b"]}},    
     {"required": ["b"],  "not":  {"required": ["a"]}}   

     ],
  "properties": {
    "a": {
      "type": "integer"
    },
    "b": {
      "type": "integer"
    }
  },

}

理想情况下,通过Jackson注解,但开放的任何其他建议。

wwtsj6pe

wwtsj6pe1#

这里的模式应该可以工作。你也可以通过删除not子句来简化它,所以只需要:

"oneOf": [
     {"required": ["a"] },    
     {"required": ["b"] }  
   ],
   ...

相关问题