Jackson scala模块将None写为null?

时间:2017-05-17 16:02:30

标签: scala jackson

以下是一个示例,展示了我的问题:

case class Foo(bar: String, baz: Option[String])

val mapper = new ObjectMapper()
  .registerModule(DefaultScalaModule)
  .setSerializationInclusion(Include.NON_NULL)

println(mapper.writeValueAsString(Foo("bar")))

这打印出{"bar":"bar","baz":null},而不仅仅是我想要的{"bar": "bar"}。请注意,mapper.writeValueAsString(Foo(null))会返回{"baz": null} - 因此,null字段会按预期处理,只有None才有问题。

对于jackson 2.6.6,这对我来说是正常的,但是我试图升级到2.8.8时遇到了这个问题。这是scala模块中的错误,还是我需要设置一些新选项才能让它工作?

1 个答案:

答案 0 :(得分:0)

嘿,开了scalamodule家伙的问题得到答案:) https://github.com/FasterXML/jackson-module-scala/issues/325

显然,NON_ABSENT现在应该用来做我需要的而不是NON_NULL