2017-02-07 54 views
2

上午有一個特點的Json格式在播放性狀2.4

trait Role[A, B] { 
    val _id: Option[A] = None 
    val value: Option[List[B]] = None 
    val id: Option[String] = None 
    } 

和擴展特性的情況下類

case class User (value1: Option[Role] = None, value2: Option[String] = None) extends Role 

object User { 
implicit val jsonFormatter: Format[User] = Json.format[User] 
} 

而且這還不是因爲錯誤,「沒有的Json formattor爲編譯角色」。

我嘗試了幾個例子可用在stackoverflow上,在json格式化的特質沒有得到工作。

回答

2

是的,這是正確的,因爲當播放試圖爲用戶做格式化,它不知道如何將Role格式化爲json。

你能做到這一點,首先將是這樣的:

implicit val roleFormat = Json.format[Role] 

從播放文檔object User

要求:

這些宏靠對幾個假設他們正在工作 與:

  • 它必須有一個伴隨對象,具有應用和不應用方法
  • unapply的返回類型必須與apply方法的參數類型相匹配。
  • apply方法的參數名稱必須與JSON中所需的屬性名稱相同。

案例類本能地滿足這些要求。對於更多自定義類 或特徵,您可能必須實施它們。

+0

它工作。簡單而有效。謝謝@Mysterion – sowmiyaksr