现在我想序列化/反序列化 Json 数据,有几个 json 库可供选择。但是,它们使用不同的上下文边界进行编码/解码,这使得很难为它们定义特征。
trait JsonLib {
// def writes[T](data: T): String
// def reads[T](jsonStr: String): Option[T]
}
object JsonCirce extends JsonLib {
import io.circe.Encoder._
import io.circe.Decoder._
def writes[T: Encoder](data: T): String = ...
def reads[T: Decoder](jsonStr: String): Option[T] =
}
//spray-json
object JsonSpray extends JsonLib {
import spray.json._
def writes[T: JsonWriter](data: T): String = ...
def reads[T: JsonReader](jsonStr: String): Option[T] = ...
}
有没有办法在特征中定义写入/读取?