私は Play フレームワーク 2.1 と Scala 2.10.1 を使用しており、カスタム ケース クラスのリストから JsArray を構築する一般的な関数を構築したいと考えています。
private def buildJsArray[T](l: List[T])(result: JsArray): JsArray = {
l match {
case List() => result
case x::xs => buildJsArray(xs)(result :+ Json.toJson(x)) // compiling error here!
}
}
利用方法:
val applyJsonArray = buildJsArray(List[Apple])(new JsArray())
ただし、コンパイル エラーがスローされます。
No Json deserializer found for type T. Try to implement an implicit Writes or Format for this type.
特定のケース クラス (つまり、Apple ケース クラス) 用に記述された Json デシリアライザーがあります。
コンパイル時ではなく実行時に x の型をチェックするようにコンパイラを遅らせるにはどうすればよいですか?
どうもありがとう!