neo4j StatementResult到scala中的json

时间:2017-04-17 17:39:06

标签: json scala neo4j

我是斯卡拉的新手。我正在使用scala-2.11构建一个REST-API来查询几个服务,其中一个是Neo4j 我正在读一个neo4j输出作为StatementResult(org.neo4j.driver.v1公共接口StatementResult扩展Iterator), 这样:

val recordsList = session.run(queryNeo4j)
println("recordsList:" +recordsList.list())

println给出了这个输出:

  

recordsList:[Record< {n:node< 6103>}&gt ;, Record< {n:node< 6104>}>]

并尝试将其转换为json以使用play-json发送响应。 起初,我试过这个:

val recordJ = Json.parse(recordList)

但它不起作用。 我也试过这个:

while (recordsList.hasNext() ) {
          val record = recordsList.next()
          println("record: " +record)
          val recordJ = Json.parse(record)
        }

但它也没有用。我收到这个错误:

error: overloaded method value parse with alternatives:
   [INFO]   (input: Array[Byte])play.api.libs.json.JsValue <and>
   [INFO]   (input: java.io.InputStream)play.api.libs.json.JsValue <and>
   [INFO]   (input: String)play.api.libs.json.JsValue
   [INFO]  cannot be applied to (org.neo4j.driver.v1.Record)
   [INFO]           val recordJ = Json.parse(record)
   [INFO]

有人可以帮我用记录列表来获取json吗?

谢谢

1 个答案:

答案 0 :(得分:0)

最简单的方法是将语句结果转换为深层对象列表。

val data = result.list(_.asMap())

然后将结果格式化为JSON。

请参阅每种方法的javadoc。