
commonMain.com.nfeld.jsonpathkt.kotlinx.KotlinxResolution.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jsonpathkt-kotlinx-jvm Show documentation
Show all versions of jsonpathkt-kotlinx-jvm Show documentation
A lighter and more efficient implementation of JsonPath in Kotlin Multiplatform
The newest version!
package com.nfeld.jsonpathkt.kotlinx
import com.nfeld.jsonpathkt.JsonPath
import com.nfeld.jsonpathkt.ResolutionOptions
import com.nfeld.jsonpathkt.resolveOrNull
import kotlinx.serialization.json.JsonElement
import kotlinx.serialization.json.JsonNull
import kotlinx.serialization.json.JsonPrimitive
import kotlinx.serialization.json.contentOrNull
public fun JsonElement.resolvePathOrNull(
path: String,
options: ResolutionOptions = ResolutionOptions.Default,
): JsonElement? =
JsonPath.compile(path).resolveOrNull(this, options)
public fun JsonElement.resolveOrNull(
path: JsonPath,
options: ResolutionOptions = ResolutionOptions.Default,
): JsonElement? = path.resolveOrNull(this, options)
public fun JsonElement.resolvePathAsStringOrNull(path: String): String? =
JsonPath.compile(path).resolveAsStringOrNull(this)
public fun JsonElement.resolveAsStringOrNull(path: JsonPath): String? =
path.resolveAsStringOrNull(this)
public fun JsonPath.resolveOrNull(
json: JsonElement,
options: ResolutionOptions = ResolutionOptions.Default,
): JsonElement? {
if (json is JsonNull) return null
return resolveOrNull(
KotlinxJsonNode(json, isWildcardScope = false),
options,
)
}
public fun JsonPath.resolveAsStringOrNull(json: JsonElement): String? {
if (json is JsonNull) return null
val value = resolveOrNull(
KotlinxJsonNode(json, isWildcardScope = false),
)
return when (value) {
is JsonPrimitive -> value.contentOrNull
else -> null
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy