X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Futils%2FJson.kt;h=ef3c95db0179ae7d2252bcae02ee34d8f8377655;hp=fc78b9686a8bbe6b53340b2b6e52df4503c3032b;hb=c28013c8a4bcb9776a1e2d82ffd6c4c8297ffb62;hpb=dd96e781b592c3bae9b0f66f85ba05a4e4cc18ce diff --git a/src/main/kotlin/net/pterodactylus/sone/utils/Json.kt b/src/main/kotlin/net/pterodactylus/sone/utils/Json.kt index fc78b96..ef3c95d 100644 --- a/src/main/kotlin/net/pterodactylus/sone/utils/Json.kt +++ b/src/main/kotlin/net/pterodactylus/sone/utils/Json.kt @@ -1,10 +1,27 @@ package net.pterodactylus.sone.utils +import com.fasterxml.jackson.databind.JsonNode import com.fasterxml.jackson.databind.node.ArrayNode import com.fasterxml.jackson.databind.node.JsonNodeFactory.instance import com.fasterxml.jackson.databind.node.ObjectNode fun jsonObject(block: ObjectNode.() -> Unit): ObjectNode = ObjectNode(instance).apply(block) + +fun jsonObject(vararg properties: Pair) = jsonObject { + properties.forEach { + it.second.let { value -> + when (value) { + is String -> put(it.first, value) + is Int -> put(it.first, value) + is Long -> put(it.first, value) + is Boolean -> put(it.first, value) + else -> Unit + } + } + } +} + fun jsonArray(vararg objects: String?): ArrayNode = objects.fold(ArrayNode(instance), ArrayNode::add) +fun jsonArray(vararg objects: JsonNode?): ArrayNode = objects.fold(ArrayNode(instance), ArrayNode::add) fun Iterable.toArray(): ArrayNode = fold(ArrayNode(instance), ArrayNode::add)