All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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