akka 未找到参数sprayJsonReader的隐含语句:Json阅读器[T]

rsaldnfx  于 2022-11-06  发布在  其他
关注(0)|答案(1)|浏览(129)

我创建了一个sbt项目来学习如何使用ElasticSearch和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)
}

我发现一个错误显示有关喷雾json阅读器说...

No implicits found for parameter sprayJsonReader: JsonReader[User]

我不知道我错过了什么。
我已经导入了两个库

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

在build.sbt文件中

1tu0hz3e

1tu0hz3e1#

您的userFormat不在ElasticsearchSource.typed的范围内,因此请将其导入,例如:

import MyJsonProtocol.userFormat

val copy = ElasticsearchSource.typed[User](
  elasticsearchParamsV7,
  query = """{ "match_all": {} }""",
  sourceSettings
)

相关问题