
Facilitates JSON5 parsing and serialization, enabling conversion between JSON5 strings and JSON elements. Integrates seamlessly with serialization libraries, supporting custom configurations and handling unknown keys.
kotlin multiplatform json5 for kotlinx.serialization
complete multiplatform support: jvm/js/native
// latest -> https://github.com/lisonge/kotlin-json5/releases
implementation("li.songe:json5:latest")Json5String -> JsonElement
// import li.songe.json5.Json5
val element = Json5.parseToJson5Element("{a:1}")Json5String -> Object
// import kotlinx.serialization.json.Json
// import kotlinx.serialization.Serializable
// import li.songe.json5.decodeFromJson5String
val json = Json {
// add your json config
ignoreUnknownKeys = true
}
@Serializable
data class A(val id:Int)
val a = json.decodeFromJson5String<A>("{id:0, b:''}")Json5String -> Json5Token
val (element, ranges) = Json5.parseToJson5ElementAndRanges("{a:1}")Loose Json5String -> Json5Token
val ranges = Json5.parseToJson5LooseRanges("{a:1,]{")JsonElement -> Json5String
// import li.songe.json5.Json5
val formatted: String = Json5.encodeToString(element)Object -> Json5String
// import kotlinx.serialization.json.Json
// import kotlinx.serialization.Serializable
// import li.songe.json5.encodeToJson5String
val json = Json {
// add your json config
}
@Serializable
data class A(val id:Int)
val formatted: String = json.encodeToJson5String(A(id=0))or use Json5EncoderConfig
comments is ignored in json5 strings
kotlin multiplatform json5 for kotlinx.serialization
complete multiplatform support: jvm/js/native
// latest -> https://github.com/lisonge/kotlin-json5/releases
implementation("li.songe:json5:latest")Json5String -> JsonElement
// import li.songe.json5.Json5
val element = Json5.parseToJson5Element("{a:1}")Json5String -> Object
// import kotlinx.serialization.json.Json
// import kotlinx.serialization.Serializable
// import li.songe.json5.decodeFromJson5String
val json = Json {
// add your json config
ignoreUnknownKeys = true
}
@Serializable
data class A(val id:Int)
val a = json.decodeFromJson5String<A>("{id:0, b:''}")Json5String -> Json5Token
val (element, ranges) = Json5.parseToJson5ElementAndRanges("{a:1}")Loose Json5String -> Json5Token
val ranges = Json5.parseToJson5LooseRanges("{a:1,]{")JsonElement -> Json5String
// import li.songe.json5.Json5
val formatted: String = Json5.encodeToString(element)Object -> Json5String
// import kotlinx.serialization.json.Json
// import kotlinx.serialization.Serializable
// import li.songe.json5.encodeToJson5String
val json = Json {
// add your json config
}
@Serializable
data class A(val id:Int)
val formatted: String = json.encodeToJson5String(A(id=0))or use Json5EncoderConfig
comments is ignored in json5 strings