我是斯卡拉的新手。我正在使用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吗?
谢谢
答案 0 :(得分:0)
最简单的方法是将语句结果转换为深层对象列表。
val data = result.list(_.asMap())
然后将结果格式化为JSON。
请参阅每种方法的javadoc。