Преобразование GraphResultSet JSON с использованием Graphson

Я пытаюсь преобразовать объект GraphResultSet в формат JSON, аналогичный возврату datastax studio. Я пытаюсь использовать Graphson. Есть ли примеры кодов, конвертирующих результирующий объект в JSON?

я попробовал следующее из чертежей Tikerpop, но это не работает

List<GraphNode> gf=((GraphResultSet) resultSet).all();
Vertex v = (Vertex) gf.get(0).asVertex();
                JSONObject json = null;
                try {
                    json = GraphSONUtility.jsonFromElement((Element) v,getElementPropertyKeys((Element) v, false), GraphSONMode.COMPACT);
                } catch (JSONException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

Я получаю объект GraphResultSet от dse, у него есть вершина и ребра. Я хотел выводить в формате JSON.

2 ответа

Решение

На данный момент нет прямого способа преобразовать объект графа драйвера DSE в JSON. Однако если вы используете драйвер DSE 1.5.0, вы можете настроить драйвер на использование GraphSON1, если вы ищете простые ответы JSON. Затем просто выведите строковое представление GraphNode:

DseCluster dseCluster = DseCluster.builder().addContactPoint("127.0.0.1")
  .withGraphOptions(
    new GraphOptions()
      .setGraphName("demo")
      // GraphSON version is set here:
      .setGraphSubProtocol(GraphProtocol.GRAPHSON_1_0)
  )
  .build();

DseSession dseSession = dseCluster.connect();

// create query
GraphStatement graphStatement = [.....];

GraphResultSet resultSet = dseSession.executeGraph(graphStatement);
for (GraphNode gn : resultSet) {
    String json = gn.toString();
}

Вы не можете напрямую использовать между com.datastax.driver.dse.graph.DefaultVertex & com.tinkerpop.blueprints.Element,

В драйвере DSE Java есть класс GraphSONUtils ( src), который должен обрабатывать эти преобразования. Но поскольку он находится во "внутреннем" пакете, я ожидаю, что изменения могут произойти в любое время.

Другие вопросы по тегам