【发布时间】:2015-09-17 14:41:16
【问题描述】:
您好,我在使用带有递归数据结构的 spray-json 库解析 json 时有点挣扎。
我定义了以下案例类结构和协议
import spray.json.DefaultJsonProtocol
import spray.json._
case class OfferAnalysisReport(BUG: DleTN, DOM: DleTN) extends AnalyticalReport
case class DleTN(doc_count: Int, result: AggsDefinition)
case class BucketDefinition(key: String, doc_count: Int, result: Option[AggsDefinition])
case class AggsDefinition(buckets: List[BucketDefinition])
object OfferAnalysisReportProtocol extends DefaultJsonProtocol {
implicit val aggsDefFormat = lazyFormat(jsonFormat(AggsDefinition,"buckets"))
implicit val bucketDefinitionFormat = lazyFormat(jsonFormat(BucketDefinition,"key","doc_count","result"))
implicit val dleTypNemovitostisFormat = jsonFormat2(DleTypuNemovitosti)
implicit val OfferAnalysisReportFormat = jsonFormat2(OfferAnalysisReport)
}
在我正在导入的测试中:
import spray.json._
import OfferAnalysisReportProtocol._
但我还是得到了
Error: couldn't find implicit value for evidence parameter of type BuckedDefinition.
我在这里遗漏了什么重要的东西吗?有人可以给我一个提示吗?
【问题讨论】:
-
你能尝试定义像
implicit lazy val aggsDefFormat和implicit lazy val bucketDefinitionFormat这样的惰性变量吗? -
懒惰地定义变量没有帮助。
标签: json scala spray spray-json