使用Circe for Scala编码为json时忽略无字段

amo*_*gel 5 json scala circe

我使用scala 2.11.8与circe 0.7.0

我使用scalajs与API区分null发送的JSON中不存在的字段和字段.

我正在寻找一种编码为JSON的方法,case class包含Option[T]我将设置None为表示缺失值的字段的scala :

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}
Run Code Online (Sandbox Code Playgroud)

circe是否提供了任何可能的配置?你知道如何访问它,我已经查看了所有发行说明,github问题和他们的网站文档没有成功.

在这种配置选项不可用的情况下,有人会如何正确实现它?

Oli*_*ain 1

使用dropNullKeys

@param dropNullKeys 确定是否从输出中删除值为 null 的对象字段。