我正在使用play-json的宏来定义隐式Writes
用于序列化JSON。但是,默认情况下,似乎play-json省略了将Option
字段设置为None
的字段。有没有办法更改默认值,使其改为输出null
?我知道如果定义自己的Writes
定义是可能的,但是我对通过宏来减少样板代码感兴趣。
例
case class Person(name: String, address: Option[String])
implicit val personWrites = Json.writes[Person]
Json.toJson(Person("John Smith", None))
// Outputs: {"name":"John Smith"}
// Instead want to output: {"name":"John Smith", "address": null}
最佳答案
您可以使用自定义隐式JsonConfiguration,请参见Customize the macro to output null
implicit val config = JsonConfiguration(optionHandlers = OptionHandlers.WritesNull)
implicit val personWrites = Json.writes[Person]
Json.toJson(Person("John Smith", None))
关于json - 当值是None时,在play-json序列化中为Option [T]输出'null',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22191574/