net.nurigo.sdk.message.lib.MapHelper.kt Maven / Gradle / Ivy
package net.nurigo.sdk.message.lib
import kotlinx.serialization.json.*
class MapHelper {
companion object {
inline fun toMap(obj: T): Map {
return jsonObjectToMap(Json.encodeToJsonElement(obj).jsonObject)
}
fun jsonObjectToMap(element: JsonObject): Map {
return element.entries.associate {
it.key to extractValue(it.value)
}
}
private fun extractValue(element: JsonElement): Any? {
return when (element) {
is JsonNull -> null
is JsonPrimitive -> element.content
is JsonArray -> element.map { extractValue(it) }
is JsonObject -> jsonObjectToMap(element)
}
}
}
} © 2015 - 2025 Weber Informatics LLC | Privacy Policy