Option
例外をスローするのではなく、を返すように、spray-jsonパーサーをラップしようとしています。
最初のステップとして、メソッドを自分のメソッドでラップしようとしていますが、汎用化するのに問題があります。
パーサーは暗黙のフォーマットオブジェクト(私が使用している具象型に対して定義されている)を使用しますが、メソッドが汎用の場合、コンパイラーは次のように文句を言います。
[error] Cannot find JsonReader or JsonFormat type class for T
[error] def parse[T](s: String): T = JsonParser(s).convertTo[T]
関連するコードは次のとおりです。
case class Person(name: String)
object Protocols {
implicit val personFormat = jsonFormat1(Person)
}
import spray.json._
object Parser {
import com.rsslldnphy.json.Protocols._
// JsonParser(s).convertTo[Person] works fine, but..
def parse[T](s: String): T = JsonParser(s).convertTo[T] // .. doesn't
}
これを機能させるには何をする必要がありますか?