Gremlin查询执行时单双引号解析失败报错问题咨询
错误根因
你当前Gremlin查询的语法问题出在字符串嵌套引号没有转义:
你给title属性赋值的时候,外层用单引号'包裹了JSON内容,JSON内部的键值对也用了单引号',Gremlin解析器遇到JSON内部第一个'fr的单引号时,会判定外层的字符串已经结束,后续字符不符合Gremlin语法规则,直接触发解析错误。
正确编写方案
分两种场景提供可直接运行的写法:
场景1:需要把多语言内容存为字符串类型
两种写法二选一即可:
- 外层改用双引号包裹JSON字符串,内部单引号无需转义:
g.V('a48543e9-d527-4928-b045-71da15a76bfe').property(single, 'title', "{'fr': '', 'en': 'Title Edit 02'}")
- 外层保持单引号,转义内部所有单引号:
g.V('a48543e9-d527-4928-b045-71da15a76bfe').property(single, 'title', '{\'fr\': \'\', \'en\': \'Title Edit 02\'}')
场景2:需要把多语言内容存为Map结构(推荐,更符合Gremlin语法规范)
如果你的图数据库支持Map类型的属性值,直接使用Gremlin原生Map字面量,不需要加任何引号包裹,完全避免转义问题:
g.V('a48543e9-d527-4928-b045-71da15a76bfe').property(single, 'title', ['fr': '', 'en': 'Title Edit 02'])
内容的提问来源于stack exchange,提问作者Thirumal
相关产品推荐
相关产品推荐

