package Ġs ck ema Ċ Ċ import Ġcom . fasterxml . jackson . annotation . JsonIgnore Properties Ċ import Ġcom . fasterxml . jackson . core . Json Parser Ċ import Ġcom . fasterxml . jackson . databind . Deserialization Context Ċ import Ġcom . fasterxml . jackson . databind . Json Deserializer Ċ import Ġcom . fasterxml . jackson . databind . JsonNode Ċ import Ġcom . fasterxml . jackson . databind . annotation . Json Deserialize Ċ import Ġjava . math . BigDecimal Ċ Ċ @ JsonIgnore Properties ( ignore Unknown Ġ= Ġtrue ) Ċ data Ġclass ĠJson Schema ( ĊĠĠĠĠĠĠĠ Ġval Ġ`$ id `: ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġval Ġtitle : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġval Ġdescription : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġval Ġdefault : ĠAny ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġval Ġ`$ ref `: ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġ@ Json Deserialize ( using Ġ= ĠTypes Deserializer :: class ) Ġval Ġtype : ĠJson Types ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġ@ Json Deserialize ( using Ġ= ĠItems Deserializer :: class ) Ġval Ġitems : ĠJson Items ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġval Ġformat : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġval Ġenum : ĠList < String >? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġval ĠmaxLength : ĠInt ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġval Ġmin Length : ĠInt ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġval Ġpattern : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġval Ġrequired : ĠList < String >? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġval Ġadditional Items : ĠBoolean Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġval Ġunique Items : ĠBoolean ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġval Ġmultiple Of : ĠBigDecimal ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġval Ġmaximum : ĠBigDecimal ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġval Ġexclusive Maximum : ĠBigDecimal ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġval Ġminimum : ĠBigDecimal ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġval Ġexclusive Minimum : ĠBigDecimal ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġ`$ comment `: ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġ@ Json Deserialize ( using Ġ= ĠDefinitions Deserializer :: class ) Ġval Ġdefinitions : ĠJson Definitions ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġ@ Json Deserialize ( using Ġ= ĠDefinitions Deserializer :: class ) Ġval Ġproperties : ĠJson Definitions ? Ġ= Ġnull Ċ ): ĠJson Definition ĊĊ Ċ interface ĠJson Definition Ċ data Ġclass ĠJson String Definition ( val Ġvalue : ĠString Ġ= Ġ"") : ĠJson Definition Ċ data Ġclass ĠJson Definitions ( val Ġdefinitions : ĠMap < String , ĠJson Definition >) Ċ data Ġclass ĠJson Types ( val Ġtypes : ĠList < String >) Ċ data Ġclass ĠJson Items ( val Ġschemas : ĠList < Json Schema >) Ċ Ċ class ĠDefinitions Deserializer : ĠJson Deserializer < Json Definitions > (){ ĊĠĠĠ Ġoverride Ġfun Ġdeserialize ( parser : ĠJson Parser , Ġcontext : ĠDeserial ization Context ): ĠJson Definitions Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcodec Ġ= Ġparser . codec ĊĠĠĠĠĠĠĠ Ġval Ġnode : ĠJsonNode Ġ= Ġcodec . read Tree ( parser ) ĊĠĠĠĠĠĠĠ Ġval Ġmap Ġ= Ġmutable Map Of < String , ĠJson Definition >() ĊĠĠĠĠĠĠĠ Ġnode . field Names (). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap [ it ] Ġ= Ġwhen { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode [ it ]. is Text ual Ġ-> ĠJson String Definition ( node [ it ]. as Text ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġcodec . tree To Value ( node [ it ], ĠJson Schema :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠJson Definitions ( map ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠTypes Deserializer : ĠJson Deserializer < Json Types > (){ ĊĠĠĠ Ġoverride Ġfun Ġdeserialize ( parser : ĠJson Parser , Ġcontext : ĠDeserial ization Context ): ĠJson Types Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcodec Ġ= Ġparser . codec ĊĠĠĠĠĠĠĠ Ġval Ġnode : ĠJsonNode Ġ= Ġcodec . read Tree ( parser ) ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnode . is Text ual Ġ-> ĠJson Types ( listOf ( node . text Value ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠJson Types ( node . fields (). as Sequence (). map Ġ{ Ġit . value . text Value () Ġ}. toList ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠItems Deserializer : ĠJson Deserializer < Json Items > (){ ĊĠĠĠ Ġoverride Ġfun Ġdeserialize ( parser : ĠJson Parser , Ġcontext : ĠDeserial ization Context ): ĠJson Items Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcodec Ġ= Ġparser . codec ĊĠĠĠĠĠĠĠ Ġval Ġnode : ĠJsonNode Ġ= Ġcodec . read Tree ( parser ) ĊĠĠĠĠĠĠĠ Ġval Ġschemas Ġ= Ġif ( node . isArray ) Ġnode . fields (). as Sequence (). map Ġ{ Ġit . value Ġ}. toList () Ġelse ĠlistOf ( node ) ĊĠĠĠĠĠĠĠ Ġreturn ĠJson Items ( Ġschemas . map Ġ{ Ġcodec . tree To Value ( it , ĠJson Schema :: class . java ) Ġ} Ġ) ĊĠĠĠ Ġ} Ċ } ĊĊ