From 2467a5ec2e49388da3d4ff0111c610cc152650ab Mon Sep 17 00:00:00 2001 From: AndreasK <64101884+akreit@users.noreply.github.com> Date: Sun, 17 May 2026 13:25:09 +0200 Subject: [PATCH] Document JSON parsing for enum fields in Scala Added instructions for parsing JSON bodies with enum fields using jsoniter-scala. --- doc/endpoint/enumerations.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/doc/endpoint/enumerations.md b/doc/endpoint/enumerations.md index 574d5a7fa9..d080c86729 100644 --- a/doc/endpoint/enumerations.md +++ b/doc/endpoint/enumerations.md @@ -255,6 +255,22 @@ enum ColorEnum: given Schema.derivedEnumeration.defaultStringBased ``` +To parse json bodies containing enum fields using `jsoniter-scala`, an additional configuration flag is required: + +```scala +enum ColorEnum: + case Green extends ColorEnum + case Pink extends ColorEnum + +given JsonValueCodec[ColorEnum] = JsonCodecMaker.make( + CodecMakerConfig.withDiscriminatorFieldName(None) + ) + +given Schema.derivedEnumeration.defaultStringBased +``` + +This ensures that enum fields are parsed as plain strings instead of objects with a "type" discriminator field, e.g. `{"type": "Green"}` + ### Scala 3 string-based constant union types to enum If a union type is a string-based constant union type, it can be auto-derived as field type or manually derived by using the `Schema.derivedStringBasedUnionEnumeration[T]` method.