Neo4j:将 REST 调用输出转换为 JSON
Neo4j: Converting REST call output to JSON
我需要将 cypher 的输出转换为 JSON。
这是我的代码片段。
RestCypherQueryEngine rcqer=new RestCypherQueryEngine(restapi);
String nodeN = "MATCH n=(Company) WITH COLLECT(n) AS paths RETURN EXTRACT(k IN paths | LAST(nodes(k))) as lastNode";
final QueryResult<Map<String,Object>> queryResult = rcqer.query(searchQuery);
for(Map<String,Object> row:queryResult)
{
System.out.println((ArrayList)row.get("lastNode"));
}
输出:
[http://XXX.YY6.192.103:7474/db/data/node/445, http://XXX.YY6.192.103:7474/db/data/node/446, http://XXX.YY6.192.103:7474/db/data/node/447, http://XXX.YY6.192.103:7474/db/data/node/448, http://XXX.YY6.192.103:7474/db/data/node/449, http://XXX.YY6.192.103:7474/db/data/node/450, http://XXX.YY6.192.103:7474/db/data/node/451, http://XXX.YY6.192.103:7474/db/data/node/452, http://XXX.YY6.192.103:7474/db/data/node/453]
我看不到实际数据(我得到的是 URL)。我很确定我在这里遗漏了一些东西。
我也想将输出转换为 JSON。
密码在我的浏览器界面中有效。
我看了很多关于这个的文章:
Java neo4j, REST and memory
Neo4j Cypher: How to iterate over ExecutionResult result
Converting ExecutionResult object to json
最后两个使用 EmbeddedDatabase,这在我的场景中可能是不可能的(因为 Neo 托管在另一个云中,因此使用 REST)。
谢谢。
试着理解你在做什么?您的查询根本没有意义。
也许您应该重新访问 Cypher 的在线课程:http://neo4j.com/online-course
MATCH n=(Company) WITH COLLECT(n) AS paths RETURN EXTRACT(k IN paths | LAST(nodes(k))) as lastNode
你可以这样做:
MATCH (c:Company) RETURN c
RestCypherQueryEngine rcqer=new RestCypherQueryEngine(restapi);
final QueryResult<Map<String,Object>> queryResult = rcqer.query(query);
for(Node node : queryResult.to(Node.class))
{
for (String prop : node.getPropertyKeys()) {
System.out.println(prop+" "+node.getProperty(prop));
}
}
我认为最好将 JDBC 驱动程序用于您尝试做的事情,实际上 return 您尝试转换为 JSON 的属性。
我需要将 cypher 的输出转换为 JSON。
这是我的代码片段。
RestCypherQueryEngine rcqer=new RestCypherQueryEngine(restapi);
String nodeN = "MATCH n=(Company) WITH COLLECT(n) AS paths RETURN EXTRACT(k IN paths | LAST(nodes(k))) as lastNode";
final QueryResult<Map<String,Object>> queryResult = rcqer.query(searchQuery);
for(Map<String,Object> row:queryResult)
{
System.out.println((ArrayList)row.get("lastNode"));
}
输出:
[http://XXX.YY6.192.103:7474/db/data/node/445, http://XXX.YY6.192.103:7474/db/data/node/446, http://XXX.YY6.192.103:7474/db/data/node/447, http://XXX.YY6.192.103:7474/db/data/node/448, http://XXX.YY6.192.103:7474/db/data/node/449, http://XXX.YY6.192.103:7474/db/data/node/450, http://XXX.YY6.192.103:7474/db/data/node/451, http://XXX.YY6.192.103:7474/db/data/node/452, http://XXX.YY6.192.103:7474/db/data/node/453]
我看不到实际数据(我得到的是 URL)。我很确定我在这里遗漏了一些东西。
我也想将输出转换为 JSON。
密码在我的浏览器界面中有效。
我看了很多关于这个的文章:
Java neo4j, REST and memory Neo4j Cypher: How to iterate over ExecutionResult result Converting ExecutionResult object to json
最后两个使用 EmbeddedDatabase,这在我的场景中可能是不可能的(因为 Neo 托管在另一个云中,因此使用 REST)。
谢谢。
试着理解你在做什么?您的查询根本没有意义。 也许您应该重新访问 Cypher 的在线课程:http://neo4j.com/online-course
MATCH n=(Company) WITH COLLECT(n) AS paths RETURN EXTRACT(k IN paths | LAST(nodes(k))) as lastNode
你可以这样做:
MATCH (c:Company) RETURN c
RestCypherQueryEngine rcqer=new RestCypherQueryEngine(restapi);
final QueryResult<Map<String,Object>> queryResult = rcqer.query(query);
for(Node node : queryResult.to(Node.class))
{
for (String prop : node.getPropertyKeys()) {
System.out.println(prop+" "+node.getProperty(prop));
}
}
我认为最好将 JDBC 驱动程序用于您尝试做的事情,实际上 return 您尝试转换为 JSON 的属性。