Ich verwende eingebettete Datenbank für Neo4j, aber es fehlt eine bequeme Methode, um Ergebnisse mit JSON-Format anzuzeigen, wenn Knoten oder Beziehungen (nicht Eigenschaften) sind angezeigt werden. Es gibt eine nahe Lösung für Neo4j 2.x, aber nicht 3.x.Convert eingebettetes Neo4j 3.x (nicht 2.x) Ergebnis zu JSON (Java)
z.B. Ich möchte, dass der Knoten etwa Folgendes anzeigt:
ohne Rücksicht darauf, was innerhalb des Knotens ist. Gibt es einen guten Weg, dies zu tun?
Maven-Abhängigkeit für eingebettete Neo4j 3.0.6
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j</artifactId>
<version>3.0.6</version>
</dependency>
Beispielcode
package TestCypher3b.TestCypher3b;
import java.io.File;
import java.util.Arrays;
import java.util.List;
import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.graphdb.Node;
import org.neo4j.graphdb.Result;
import org.neo4j.graphdb.factory.GraphDatabaseFactory;
public class App
{
public static void main(String[] args)
{
GraphDatabaseFactory graphDbFactory = new GraphDatabaseFactory();
final GraphDatabaseService graphDb = graphDbFactory.newEmbeddedDatabase(new File("data/dbName"));
List<String> queries = Arrays.asList(new String[]{
"match (a) delete a;",
"create (a:User {name:'Adam', age:100, children:['a','b','c']});",
"create (a:User {name:'Eve', age:200, properties:[]});",
"create (a:User {name:'Steve', age:300});",
});
queries.forEach(q -> {
Result result = graphDb.execute(q);
// System.out.println(result.resultAsString());
});
Result result = graphDb.execute("match (a) return a;");
// String jsonOut = ...something like result.forEachRemaining(n -> toJson(n)...
System.out.println(jsonOut);
}
}
(FYI, Serializer wie Gson und Jackson nicht aus der Box nicht funktioniert)
Ihre Beispielanzeige ist ungültig JSON; Möchten Sie nur eine Zeichenfolgendarstellung oder möchten Sie ein echtes JSON-Objekt mit interner ID, Beschriftungen und Eigenschaften? –
Oh, du hast Recht! Ja, ich denke, das ist kein gültiges JSON - ein echtes JSON-Objekt ist wünschenswert, aber wenn die Lösung nah genug ist, ist es in Ordnung. – Shin