When using Jackson\'s JSON schema module, instead of serializing the complete graph I\'d like to stop whenever one of my model classes is encountered, and use the class nam
You can try and use following code -
ObjectMapper MAPPER = new ObjectMapper();
SchemaFactoryWrapper visitor = new SchemaFactoryWrapper();
JsonSchemaGenerator generator = new JsonSchemaGenerator(MAPPER);
JsonSchema jsonSchema = generator.generateSchema(MyBean.class);
System.out.println(MAPPER.writeValueAsString(jsonSchema));
But your expected output is not valid, it won't say $ref, unless it has specified the schema for "Animals" at least once.
{
"type": "object",
"id": "urn:jsonschema:com:tibco:tea:agent:Zoo",
"properties": {
"animals": {
"type": "array",
"items": {
"type": "object",
"id": "urn:jsonschema:com:tibco:tea:agent:Animal",
"properties": {
"species": {
"type": "string"
}
}
}
},
"name": {
"type": "string"
}
}
}