0

我正在尝试将 GraphResultSet 对象转换为类似于 datastax studio 返回的 JSON 格式。我正在尝试使用 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();
                }

我从 dse 得到一个 GraphResultSet 对象,它有顶点和边。我想以 JSON 格式输出。

4

2 回答 2

2

目前没有直接的方法将 DSE 驱动程序图形对象转换为 JSON。但是,如果使用DSE 驱动程序 1.5.0,如果您正在寻找简单的 JSON 响应,您可以将驱动程序配置为使用 GraphSON1。然后简单地输出 的字符串表示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();
}
于 2018-01-19T21:28:41.913 回答
1

您不能直接在com.datastax.driver.dse.graph.DefaultVertex&之间进行转换com.tinkerpop.blueprints.Element

DSE Java 驱动程序中有GraphSONUtils类(src)应该能够处理这些转换。但因为它在“内部”包中,所以我预计任何时候都可能发生变化。

于 2018-01-16T14:08:05.783 回答