【发布时间】:2017-09-01 04:02:36
【问题描述】:
我正在使用 scala 2.11.8 和 circe 0.7.0
我正在使用 scalajs 与 API 进行通信,以区分发送的 JSON 中不存在的字段和 null 字段。
我正在寻找一种将包含 Option[T] 字段的 scala case class 编码为 JSON 的方法,我将其设置为 None 以表示缺失值:
case class Foo(
optionalFieldOne: Option[Int] = 42,
optionalFieldTwo: Option[Int] = null,
optionalFieldThree: Option[Int] = None
)
implicit FooEncoder: Encoder[Foo] = deriveEncoder[Foo]
val test = Foo()
//What the code actually produces
test.asJson.noSpace
//>{"optionalFieldOne": 42,"optionalFieldTwo":null, "optionalFieldThree":null}
//What I would like
test.asJson.noSpace
//>{"optionalFieldOne": 42,"optionalFieldTwo":null}
circe 是否提供了任何可能的配置?你知道如何访问它吗?我已经浏览了所有的发行说明、github 问题和他们的网站文档,但没有成功。
在这种配置选项不可用的情况下,有人将如何正确实现它?
【问题讨论】: