gpt4 book ai didi

scala - 喷Json : Convert a Generic type to JsonFormat

转载 作者:行者123 更新时间:2023-12-01 22:05:16 25 4
gpt4 key购买 nike

我有一个类似于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)

当我使用这个特性时,我得到了以下错误,需要一个用于 KV 类型的转换器。

error: could not find implicit value for evidence parameter of type Convertor.this.JF[K] implicit val convertor = 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)

将打印

{"key":"One","value":1}

关于scala - 喷Json : Convert a Generic type to JsonFormat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52313180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com