Representar parâmetros aninhados para a consulta Neo4j no Scala
Tentei executar consultas Neo4j com parâmetros na forma do mapa [String, Anyref], que funciona muito bem. No entanto, gostaria de enviar os dados para o Neo4j no formato do lote, para que o resultado fosse Map [String, Map [String, AnyRef]] ou Map [String, AnyRef] se os dados forem convertidos. Mas, no geral, eu gostaria de definir os dados da seguinte maneira:
{
"nodes": [
{
"id": 193331567,
"lat": 40.7599983215332,
"lon": -73.98999786376953
},
{
"id": 173062762,
"lat": 41.959999084472656,
"lon": -87.66000366210938
},
{
"id": 66276172,
"lat": 40.72999954223633,
"lon": -74.01000213623047
}
]
}
Eu escrevi no Scala usando mapas aninhados, no entanto, quando passo esses mapas aninhados como parâmetro para a consulta, ele não pode ser renderizado pelo Neo4j. Então, como posso representar essa estrutura JSON aninhada no Scala? Devo usar um objeto em vez disso ou algo assim?
Aqui está o mapa que eu montei:
val paramsList = Map("nodes" -> {
data map { seq =>
Map(
"lat" -> seq(1).toDouble.asInstanceOf[AnyRef],
"lon" -> seq(2).toDouble.asInstanceOf[AnyRef],
"id" -> seq(0).toInt.asInstanceOf[AnyRef]
)
}}.asInstanceOf[AnyRef])
val queryResults = neo4jSession.run(neo4jQuery, params.asJava)