Skip to content

Latest commit

 

History

History
80 lines (58 loc) · 1.72 KB

File metadata and controls

80 lines (58 loc) · 1.72 KB

UtaFormatix Data in Kotlin

Maven Central

Kotlin implementation of UtaFormatix Data Format.

Import

This library has full support of Kotlin multiplatform projects.

Kotlin DSL:

repositories {
    mavenCentral()
}

dependencies {
    implementation("com.sdercolin.utaformatix:utaformatix-data:1.1.0")
}

Groovy DSL:

repositories {
    mavenCentral()
}

dependencies {
    implementation "com.sdercolin.utaformatix:utaformatix-data:1.1.0"
}

Use Kotlin's Serialization library

The classes are marked @Serializable so you can use kotlinx.serialization to serialize/deserialize them.

Example

In your build.gradle.kts:

// Note: The latest version requires K2 compiler. If you are using K1, please use version 1.0.0.
plugins {
    kotlin("jvm") version "2.1.20"
    kotlin("plugin.serialization") version "2.1.20"
}

// ...

dependencies {
    // ...
    implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.0")
    // ...
}

In your code:

import com.sdercolin.utaformatix.data.Document

val jsonSerializer = Json {
    isLenient = true
    ignoreUnknownKeys = true
    encodeDefaults = true
    explicitNulls = false
    coerceInputValues = true
}

fun deserialize(json: String): Document {
    return jsonSerializer.decodeFromString(Document.serializer(), json)
}

fun serialize(document: Document): String {
    return jsonSerializer.encodeToString(Document.serializer(), document)
}