FasterXML / FasterXML/jackson-module-jsonSchema

Invalid serialisation of UnionTypeSchema

Open
#90 6 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
387
Forks
136
PR merge metrics
No merged PRs in 30d

Description

UnionTypeSchema currently cannot be serialised because it returns a null type which is not welcomed by JsonSchemaIdResolver.idFromValue. If you extend UnionTypeSchema and return a type then it serialises this as "type" and serialises the types as "elements". This is not valid JSON Schema. It should serialize the union as a "type" array. See https://tools.ietf.org/html/draft-zyp-json-schema-03#page-8

If I then attempt to further patch UnionTypeSchema to change "elements" into "type" then it serialises with TWO "type" properties which isn't even valid JSON!

If I attempt to annotate UnionTypeSchema to not include type info with @JsonTypeInfo(use = JsonTypeInfo.Id.NONE, property = "type") then it has no effect except when the union type schema is passed directly to ObjectMapper.

A test case is attached.

[JacksonUnionTypeSerializationBugTest.java.txt](https://github.com/FasterXML/jackson-module-jsonSchema/files/62387/JacksonUnionTypeSerializationBugTest.java.txt)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.