diff options
Diffstat (limited to 'shared/src/main/scala/DerivedFormats.scala')
-rw-r--r-- | shared/src/main/scala/DerivedFormats.scala | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/shared/src/main/scala/DerivedFormats.scala b/shared/src/main/scala/DerivedFormats.scala index d0cac38..eabfa82 100644 --- a/shared/src/main/scala/DerivedFormats.scala +++ b/shared/src/main/scala/DerivedFormats.scala @@ -24,7 +24,12 @@ trait DerivedFormats { self: BasicFormats => ctx.rawConstruct(Seq.empty) } else { ctx.construct { param => - param.typeclass.read(obj.fields(param.label)) + val fieldValue = if (param.option) { + obj.fields.getOrElse(param.label, JsNull) + } else { + obj.fields(param.label) + } + param.typeclass.read(fieldValue) } } case js => |