gpt4 book ai didi

java - Java 中的 Neo4j Cypher 查询结果序列化

转载 作者:行者123 更新时间:2023-12-02 06:28:44 25 4
gpt4 key购买 nike

我正在构建一个包含帖子、回复等的提要,并且我正在尝试获取特定提要的受限数据集(在时间范围内等)。

我在 Java 中调用此查询,因为我想使用 Java 核心 API 来执行某些任务,同时可以灵活地使用 cypher 来执行更简单的查询。有什么方法可以将其以 JSON 的形式直接传递回 Web 客户端。

START f=node:feeds(name='MY-FEED')                                     
MATCH (f)<-[:WRITTEN_TO]-(p)<-[:HAS_REPLIED_TO]-(r)<-[:HAS_PUBLISHED]-(ur)
WHERE p.datetime >= 201311261000 AND p.datetime <= 201311271000
WITH p,collect({m:r.msg,u:ID(ur),dt:r.datetime})[0..2] as prgroup
MATCH (pu)-[:HAS_PUBLISHED]->(p)<-[t:HAS_TAGGED]-(),
()-[l:HAS_LIKED]->(p)
WITH p,pu,prgroup,collect(t.name) as tags,count(l) as likes
return {
post:{
msg:p.msg,
id:ID(p),
u:ID(pu),
dt:p.datetime,
pin:p.pinned,
tags:tags,
likes:likes
},replies:prgroup
} as threads
order by p.pinned desc, p.updated desc
SKIP 0
limit 10

在 Java 中(仅生成格式错误的 json):

ExecutionResult results = engine.execute(cql);
List<String> threads = new ArrayList<String>();
for (Map<String,Object> row : results) {
for (Object val : row.values()) {
threads.add(val.toString());
}
}
return "["+Joiner.on(",").join(threads)+"]";

任何帮助将不胜感激。

最佳答案

两行:

Gson g = new GsonBuilder().setPrettyPrinting().create();
String json = g.toJson(IteratorUtil.asList(results.iterator()));

关于java - Java 中的 Neo4j Cypher 查询结果序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20264214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com