- nebula 版本:v2-beta
- 部署方式:docker
- 问题的具体描述:当字符串内容存在 " 后子图等查询返回查询结果时会把 " 直接展示出来,这样非常难以进行解析,我个人认为应该变为 \" 进行返回,想听听官方时怎么想的
另外,我看studio里面整得挺不错的,有没有源码啊
你这里看到字符串其实是 nebula-go client 给格式化之后返回给 studio 前端的,这里这么显示原因有二:
- 与 nebula-console 使用相同的格式呈现给用户;
- 与 openCypher TCK 定义中的格式保持兼容。
这里不清楚你的使用场景如何,如果你是直接使用 nebula 的 client,可以直接通过 client 返回的数据结构组装成你想要的任何字符串(你看到的字符串也是这么做的)。
studio 的代码没有开源,但是这块不涉及到 studio 的代码,而是调用的 nebula-http-gateway 的 API,这块代码后续我们会开源出来。至于进度要看 @jerry.liang 那边的完成情况
目前我使用的是java-client,如果执行
update vertex “100” set player.name=“Ti\",size:20, place:\"m Duncan”
之后再去执行
get subgraph 6 steps from “100”
通过client查询就会得到
这个结果明显是不正确的,解析正确的情况下也平白多了很多属性
怎么才能解析成下面这样的结果呢?
你是说这里的显示没有考虑到字段的值有引号的情况,对吧?这块需要 @Aiee @dingding 来确认一下对应的字符串有无做处理。
如果是直接使用 java client 的话,你可以能通过 client 拿到对应 response 的结构,然后直接解析结构中的 Value 得到 Edge 和 Vertex 的。具体示例可以参考:
我们在处理这种情况的时候保持了和open cypher一样的行为,例如在open cypher中执行如下语句:
return {name:"Ti\",size:20, place:\"m Duncan"}
输出为:
╒═════════════════════════════════════════╕
│"{name:"Ti\",size:20, place:\"m Duncan"}"│
╞═════════════════════════════════════════╡
│{"name":"Ti",size:20, place:"m Duncan"} │
└─────────────────────────────────────────┘
实际处理时Nebula也是将 "{name:"Ti\",size:20, place:\"m Duncan"}"
解析成一整个字符串的
1 个赞