Problem I am trying to solve:
Given Java Objects:
@JsonSubTypes({
@JsonSubTypes.Type(value = A.class),
@JsonSubTypes.Type(value = B.class)
})
public interface I {}
public class A implements I {
public int varA;
}
public class B implements I {
public int varB;
}
public class C {
public I varC;
}
I desire a json schema as follows:
{
"definitions": {
"urn:jsonschema:com:mycompany:GenerateSchemas:A": {
"type" : "object",
"id" : "urn:jsonschema:com:mycompany:GenerateSchemas:A",
"properties" : {
"varA" : {
"type" : "integer"
}
}
},
"urn:jsonschema:com:mycompany:GenerateSchemas:B": {
"type" : "object",
"id" : "urn:jsonschema:com:mycompany:GenerateSchemas:B",
"properties" : {
"varB" : {
"type" : "integer"
}
}
}
},
"type" : "object",
"id" : "urn:jsonschema:com:mycompany:GenerateSchemas:C",
"properties" : {
"varC" : {
"type" : "object",
"oneOf": [
{ "$ref": "urn:jsonschema:com:mycompany:GenerateSchemas:A" },
{ "$ref": "urn:jsonschema:com:mycompany:GenerateSchemas:B" }
]
}
}
}
Using version 2.9.8 of the library, the schema that is generated is:
{
"type" : "object",
"id" : "urn:jsonschema:com:mycompany:GenerateSchemas:C",
"properties" : {
"varC" : {
"type" : "any"
}
}
}
It would be nice if it was possible to natively support this given that @JsonSubType annotations are present.
Please see related to StackOverflow Question: https://stackoverflow.com/questions/56174997/json-schema-generator-with-inheritance-and-references
My workaround: https://gist.github.com/rrmistry/2246c959d1c9cc45894ecf55305c61fd
(Could be improved if approved)
Thank you,
Problem I am trying to solve:
Given Java Objects:
I desire a json schema as follows:
{ "definitions": { "urn:jsonschema:com:mycompany:GenerateSchemas:A": { "type" : "object", "id" : "urn:jsonschema:com:mycompany:GenerateSchemas:A", "properties" : { "varA" : { "type" : "integer" } } }, "urn:jsonschema:com:mycompany:GenerateSchemas:B": { "type" : "object", "id" : "urn:jsonschema:com:mycompany:GenerateSchemas:B", "properties" : { "varB" : { "type" : "integer" } } } }, "type" : "object", "id" : "urn:jsonschema:com:mycompany:GenerateSchemas:C", "properties" : { "varC" : { "type" : "object", "oneOf": [ { "$ref": "urn:jsonschema:com:mycompany:GenerateSchemas:A" }, { "$ref": "urn:jsonschema:com:mycompany:GenerateSchemas:B" } ] } } }Using version 2.9.8 of the library, the schema that is generated is:
{ "type" : "object", "id" : "urn:jsonschema:com:mycompany:GenerateSchemas:C", "properties" : { "varC" : { "type" : "any" } } }It would be nice if it was possible to natively support this given that
@JsonSubTypeannotations are present.Please see related to StackOverflow Question: https://stackoverflow.com/questions/56174997/json-schema-generator-with-inheritance-and-references
My workaround: https://gist.github.com/rrmistry/2246c959d1c9cc45894ecf55305c61fd
(Could be improved if approved)
Thank you,