2013-01-11 53 views
1

使用Play! 2.1 Json庫,有沒有辦法只寫滿一定的條件才能寫一個字段給json?例如:Scala中的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} 

回答

4

您必須編寫自己的Writes[T]類,在這種情況下Writes[Foo]看到Scaladoc以供參考。或者您可以將字符串更改爲Option[String]並編寫一個Writes[Option[String]]Writes[Option[_]]

我還沒有嘗試過,但它與我以前使用的Spray-json非常相似。

+0

+1,如果一個字段是可選的,它應該是一個'Option [_]'。 –