我有一个类似的课程Pairs.我有一个特性,将此类转换Pairs为Json格式.
import scala.reflect.ClassTag
import spray.json._
import spray.json.DefaultJsonProtocol
case class Pairs[K, V](key:K, value: V)
trait Convertor[K, V] extends DefaultJsonProtocol{
implicit val convertor = jsonFormat2(Pairs[K, V])
}
val p = Pairs[String, Int]("One", 1)
println(p.toJson)
Run Code Online (Sandbox Code Playgroud)
当我使用这个特性时,我得到以下错误,以获得转换器K和V类型.
错误:找不到类型为Convertor.this.JF [K]隐式val转换器= jsonFormat2(Pairs [K,V])^的证据参数的隐式值
但是如何在范围内引入通用数据类型.有人可以帮帮我吗?
您需要为密钥类型和值类型提供JsonFormat.
这段代码
import spray.json.DefaultJsonProtocol._
import spray.json._
case class Pairs[K, V](key: K, value: V)
implicit def pairsFormat[K: JsonFormat, V: JsonFormat] = jsonFormat2(Pairs.apply[K, V])
val p = Pairs[String, Int]("One", 1)
println(p.toJson)
Run Code Online (Sandbox Code Playgroud)
将打印
{"key":"One","value":1}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
290 次 |
| 最近记录: |