我需要公开一个公共API,我需要将cypher查询的结果转换为json。我已经开始了这个过程,但是在序列化scala.collection.convert.Wrappers类型的对象时遇到问题。在cypher中使用collect()时会返回$ SeqWrapper。
这是密码查询:
MATCH (orders:Orders {id:'locationrestaurant'}), (order:Order), (orders)-[:hasOrder]-(order),(order)-[:orderedProduct]->(product),(client)-[:ordered]->(order) return (order),(client), collect(product) as products;
我该如何处理这种类型的物体?我可以将它投射到列表中吗?还有,有没有用于将ExecutionResult转换为json的库?
如果您需要更多详情,请询问。这是我的代码
public QueryResult runCypher(String query, Map<String,Object> params)
{
QueryResult result = new QueryResult();
Transaction tx = service.beginTx();
ExecutionResult execResult = null;
boolean success = true;
System.out.println(query);
try
{
if(params!=null) execResult = engine.execute(query, params);
else execResult = engine.execute(query);
result.result = getReturnedObjectsToJson(execResult);
}
catch(Exception e)
{
System.out.println(e.getMessage()+" exception message");
result.result = e.getMessage();
success = false;
}
finally
{
if(success) tx.success();
else tx.failure();
}
tx.close();
result.success = success;
return result;
}
基本上,getReturnedObjectsToJson可以完成工作。
答案 0 :(得分:0)
我该如何处理这类对象?
data.get(&#34;标签&#34;)instanceof java.util.Collection
我可以将其投放到列表中吗?
是
此外,是否有用于将ExecutionResult转换为json的库?
ExecutionResult是可迭代的,我认为你可以使用任何流行的java json框架,例如gson或jackson
答案 1 :(得分:0)
您可以使用Jacksons数据绑定框架。这将允许您将其转回目的地的执行结果。
如果要从执行结果中获取实际图形,以便Json处于某种图形模式中。这是更多的工作。
我一直在编写一个库,它会将仲裁图解析成Cypher,并将执行结果反馈回图形以与虚拟查询构建器一起工作,这是相当困难的工作。希望它很快就能完成。 :)