使用Jackson的
JSON模式模块时,不管是否遇到某个模型类,我都希望停止完整的图形,并使用类名为另一个模式插入$ref.你能引导我到jackson-module-jsonSchema源中的正确位置开始修补吗?
这里有一些代码来说明这个问题:
public static class Zoo {
public String name;
public List animals;
}
public static class Animal {
public String species;
}
public static void main(String[] args) throws Exception {
SchemaFactoryWrapper visitor = new SchemaFactoryWrapper();
ObjectMapper mapper = objectMapperFactory.getMapper();
mapper.acceptJsonFormatVisitor(mapper.constructType(Zoo.class), visitor);
JsonSchema jsonSchema = visitor.finalSchema();
System.out.println(mapper.writeValueAsString(jsonSchema));
}
输出:
{
"type" : "object",
"properties" : {
"animals" : {
"type" : "array",
"items" : {
"type" : "object",
"properties" : {
"species" : {
"type" : "string"
}
}
}
},
"name" : {
"type" : "string"
}
}
}
期望的输出:
{
"type" : "object",
"properties" : {
"animals" : {
"type" : "array",
"items" : {
"$ref" : "#Animal"
}
},
"name" : {
"type" : "string"
}
}
}