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

dev.arbjerg.lavalink.internal.JsonParser.kt Maven / Gradle / Ivy

The newest version!
package dev.arbjerg.lavalink.internal

import com.fasterxml.jackson.databind.JsonNode
import com.fasterxml.jackson.databind.ObjectMapper
import dev.arbjerg.lavalink.protocol.v4.json
import kotlinx.serialization.json.JsonElement
import kotlinx.serialization.json.JsonObject
import java.io.InputStream


private val objectMapper = ObjectMapper()

fun JsonElement.toJackson(): JsonNode = objectMapper.readTree(this.toString())
fun JsonNode.toKotlin(): JsonObject = toJsonElement(this) as JsonObject

fun toJsonElement(obj: Any?): JsonElement {
    if (obj == null) {
        return JsonObject(mapOf())
    }

    val jsonString = objectMapper.writeValueAsString(obj)

    return json.parseToJsonElement(jsonString)
}

fun  fromRawJson(bytes: InputStream, klass: Class): T {
    return objectMapper.readValue(bytes, klass)
}

fun  fromJsonElement(jsonElement: JsonElement, klass: Class): T {
    val stringValue = jsonElement.toString()

    return objectMapper.readValue(stringValue, klass)
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy