Kotlinx.serialization
Required dependency
<dependency>
<groupId>org.jetbrains.kotlinx</groupId>
<artifactId>kotlinx-serialization-json</artifactId>
<version>1.8.1</version>
</dependency>
implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1'
The newest version is always supported.
Adapter classes are:
Provider node
The JsonNode abstraction wraps a concrete class from JSON/YAML library, which is called a "provider node." It is possible to interact with the API using provider nodes directly, but there is no type information at compile time, so please ensure that you are using the correct class.
Usage
Creating Validator instance
val factory: JsonNodeFactory = KotlinxJsonNode.Factory()
val validator: Validator = ValidatorFactory()
.withJsonNodeFactory(factory)
.createValidator()
Using custom Json configuration
val json = Json { isLenient = true }
val factory: JsonNodeFactory = KotlinxJsonNode.Factory(json)
val validator: Validator = ValidatorFactory()
.withJsonNodeFactory(factory)
.createValidator()
Converting String to JsonNode
val factory: JsonNodeFactory = KotlinxJsonNode.Factory()
val jsonNode: JsonNode = factory.create("{}")
Converting provider node to JsonNode
val providerNode: kotlinx.serialization.json.JsonElement = Json.parseToJsonElement("{}")
val factory: JsonNodeFactory = KotlinxJsonNode.Factory()
val jsonNode: JsonNode = factory.wrap("{}")
Using Validator with provider nodes
val providerSchemaNode: kotlinx.serialization.json.JsonElement = Json.parseToJsonElement("{}")
val schemaUri: URI = validator.registerSchema(providerSchemaNode)
val providerInstanceNode: kotlinx.serialization.json.JsonElement = Json.parseToJsonElement("true")
val result: Validator.Result = validator.validate(schemaUri, providerInstanceNode)
04 August 2025