Я пытаюсь обернуть синтаксический анализатор spray-json так, чтобы он возвращал Option
, а не выдавал исключение.
В качестве первого шага я просто пытаюсь обернуть метод своим собственным, но у меня возникают проблемы с его обобщением.
Парсер использует неявный объект формата (который определен для конкретного типа, который я использую), но когда метод является универсальным, компилятор жалуется:
[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
}
Что мне нужно сделать, чтобы заставить это работать?