我正在尝试包装 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
}
我需要做什么才能使其正常工作?