nebula java-client客户端代码查询返回resultSet对象转json有没有好的方式

List colNames = resultSet.keys();

JSONArray json = new JSONArray();

for (int i = 0; i < resultSet.rowsSize(); i++) {

JSONObject obj = new JSONObject();
ResultSet.Record record = resultSet.rowValues(i);

int j=0;
for (ValueWrapper value : record.values()) {
String columnName = colNames.get(j);
j++;

  if (value.isLong()) {
     obj.put(columnName,value.asLong());
  }
  if (value.isBoolean()) {
     obj.put(columnName,value.asBoolean());
  }
  if (value.isDouble()) {
     obj.put(columnName,value.asDouble());
  }
  if (value.isString()) {
     obj.put(columnName,value.asString());
  }
  if (value.isTime()) {
     obj.put(columnName,value.asTime());
  }
  if (value.isDate()) {
     obj.put(columnName,value.asDate());
  }
  if (value.isDateTime()) {
     obj.put(columnName,value.asDateTime());
  }
  if (value.isVertex()) {
     obj.put(columnName,value.asNode());
  }
  if (value.isEdge()) {
     obj.put(columnName,value.asRelationship());
  }
  if (value.isPath()) {
     obj.put(columnName,value.asPath());
  }
  if (value.isList()) {
     obj.put(columnName,value.asList());
  }
  if (value.isSet()) {
     obj.put(columnName,value.asSet());
  }
  if (value.isMap()) {
     obj.put(columnName,value.asMap());
  }

}
json.add(obj);
System.out.println();
}

有没有比这好的方式

1 个赞

我觉得这个是现有封装下的最佳实践了,cc @dingding 如果有更好的方式,麻烦纠正我哈

resultSet对象返回的数据,能直接转成自己想要的对象就好了

1 个赞

服务端有执行返回json的接口预留,也就是说直接从服务端拿到的就是json,只是这个还没做,做的话,客户端是不需要任何处理的,这样客户端格式也是统一的,你等服务端加上这个吧。

1 个赞

该话题在最后一个回复创建后30天后自动关闭。不再允许新的回复。