没有找到参数sprayJsonReader 的隐式:JsonReader[T]

问题描述

我创建了一个 sbt 项目来学习如何在 akka 中使用弹性搜索。我遇到了提供此功能alpakka(用于连接 elasticsearch)。 根据文档,要从 ES 搜索,我们有以下代码

val connectionSettings = ElasticsearchConnectionSettings("http://localhost:9200")
  val sourceSettings = ElasticsearchSourceSettings(connectionSettings)
  val elasticsearchParamsV7 = ElasticsearchParams.V7("index")
  val copy = ElasticsearchSource
    .typed[User](
      elasticsearchParamsV7,query = """{"match_all": {}}""",sourceSettings
    )

    import spray.json.{DefaultJsonProtocol,RootJsonFormat}
case class User(first_name: String,last_name: String,email: String)

object MyJsonProtocol extends DefaultJsonProtocol {
  implicit val userFormat: RootJsonFormat[User] = jsonFormat3(User)
}

我发现一个错误显示与spray json reader说...

No implicits found for parameter sprayJsonReader: JsonReader[User]

我不知道我在这里遗漏了什么。

我已经导入了两个库

"akka-http-spray-json"
"spray-json"

在 build.sbt 文件

解决方法

您的 dec_output 不在 userFormat 的范围内,因此请导入它,例如:

ElasticsearchSource.typed

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...