summaryrefslogtreecommitdiff
path: root/guide/example/example-json-13.kt
diff options
context:
space:
mode:
Diffstat (limited to 'guide/example/example-json-13.kt')
-rw-r--r--guide/example/example-json-13.kt18
1 files changed, 8 insertions, 10 deletions
diff --git a/guide/example/example-json-13.kt b/guide/example/example-json-13.kt
index 97188ff5..e20afe28 100644
--- a/guide/example/example-json-13.kt
+++ b/guide/example/example-json-13.kt
@@ -4,15 +4,13 @@ package example.exampleJson13
import kotlinx.serialization.*
import kotlinx.serialization.json.*
+val format = Json { decodeEnumsCaseInsensitive = true }
+
+enum class Cases { VALUE_A, @JsonNames("Alternative") VALUE_B }
+
+@Serializable
+data class CasesList(val cases: List<Cases>)
+
fun main() {
- val element = Json.parseToJsonElement("""
- {
- "name": "kotlinx.serialization",
- "forks": [{"votes": 42}, {"votes": 9000}, {}]
- }
- """)
- val sum = element
- .jsonObject["forks"]!!
- .jsonArray.sumOf { it.jsonObject["votes"]?.jsonPrimitive?.int ?: 0 }
- println(sum)
+ println(format.decodeFromString<CasesList>("""{"cases":["value_A", "alternative"]}"""))
}