【发布时间】:2018-08-05 15:48:49
【问题描述】:
我想生成 JSON 架构,其中 "additionalProperties" : false 将应用于我拥有的所有类。
假设我有以下课程:
class A{
private String s;
private B b;
public String getS() {
return s;
}
public B getB() {
return b;
}
}
class B{
private BigDecimal bd;
public BigDecimal getBd() {
return bd;
}
}
当我像下面的代码那样生成架构时,架构属性"additionalProperties" : false 仅适用于类A。
ObjectMapper mapper = new ObjectMapper();
JsonSchemaGenerator schemaGen = new JsonSchemaGenerator(mapper);
ObjectSchema schema = schemaGen.generateSchema(A.class).asObjectSchema();
schema.rejectAdditionalProperties();
mapper.writerWithDefaultPrettyPrinter().writeValueAsString(schema);
如何生成将"additionalProperties" : false 应用于所有类的架构?
schema 的示例
{
"type" : "object",
"id" : "urn:jsonschema:com.xxx.xxx:A",
"additionalProperties" : false,
"properties" : {
"s" : {
"type" : "string"
},
"b" : {
"type" : "object",
"id" : "urn:jsonschema:com.xxx.xxx:B",
"properties" : {
"bd" : {
"type" : "number"
}
}
}
}
}
注意:我不想部分地生成方案。
有关信息: 如果有人感兴趣,您可以支持修复此问题,我已经为这种情况打开了问题。 Generate json schema which should rejects all additional content
【问题讨论】:
标签: java json jackson jsonschema json-schema-validator