object JsonTest extends App { case class Foo(value: String, content: String) implicit val fooDecoder: Decoder[Foo] = Decoder.instance({ c => val from = c.downField("from").as[String] val content = c.downField("content").focus.fold("")(c => c.noSpaces) from.map(f => Foo(f, content)) }) val jsonStr = s""" |{ | "from": "Test", | "content": {"foo": "FOOOO"} |} """.stripMargin val res = decode[Foo](jsonStr) println(res) }