使用播放!2.1 Json库,有没有办法只在满足一定条件的情况下才将字段写入json?例如:
case class Foo(id: Int, name: String)
我想定义一个仅在名称不为空Writes
时才生成字段的字段。name
以便:
Json.toJson(Foo(1, "Chuck")) //yields {"id":1,"name":"Chuck"}
Json.toJson(Foo(1, "")) //yields {"id":1}
使用播放!2.1 Json库,有没有办法只在满足一定条件的情况下才将字段写入json?例如:
case class Foo(id: Int, name: String)
我想定义一个仅在名称不为空Writes
时才生成字段的字段。name
以便:
Json.toJson(Foo(1, "Chuck")) //yields {"id":1,"name":"Chuck"}
Json.toJson(Foo(1, "")) //yields {"id":1}
您必须编写自己的Writes[T]
类,在这种情况下,Writes[Foo]
请参阅Scaladoc以供参考。或者,您可以将 String 更改为 anOption[String]
并写入一个Writes[Option[String]]
或Writes[Option[_]]
。
我自己没有尝试过,但它与我过去使用的 Spray-json 非常相似。