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