dave08
03/29/2023, 2:23 PMEvery<JsonElement, Foo>
?simon.vergauwen
03/29/2023, 2:29 PMPrism
for this. cc\ @Alejandro Serrano Menadave08
03/29/2023, 2:29 PMstring
seems to be implemented like this:
private object JsonElementToString : Optional<JsonElement, String> {
override fun getOrModify(source: JsonElement): Either<JsonElement, String> =
source.jsonPrimitiveOrNull?.let { json ->
if (json.isString) json.content.right() else json.left()
}
?: source.left()
override fun set(source: JsonElement, focus: String): JsonElement =
if (source is JsonPrimitive && source.isString) JsonPrimitive(focus) else source
}
dave08
03/29/2023, 2:30 PMOptional<JsonElement, Foo>(
getOrModify = *{*
*}*, set = *{}*
)
intellij doesn't know what to import...Alejandro Serrano Mena
03/29/2023, 2:32 PMdave08
03/29/2023, 2:34 PM[{ "id":1, "name": "this"}, {"id":2, "name": "that"}]
Getting each element in:
data class Foo(id: Int, name: String)
(the actual json could be more complex...)dave08
03/29/2023, 2:36 PMdave08
03/29/2023, 2:37 PMnone
... I think that's how string
works too, no?dave08
03/29/2023, 2:38 PMdave08
03/29/2023, 2:45 PM_extract_()
... 👍🏼