kotlin multiplatform json5 for kotlinx.serialization
its principle is to convert a JSON5 string into a valid JsonElement object, which facilitates interoperability with kotlinx serialization
implementation("li.songe:json5:0.2.0")
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:''}")
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
ignoreUnknownKeys = true
}
@Serializable
data class A(val id:Int)
val formatted: String = json.encodeToJson5String(A(id=0))