在向Neo4J's transactional Cypher API发送Cypher查询时,我遇到以下错误:
Neo.ClientError.Request.InvalidFormat无法反序列化请求: 无法识别的字符转义'''(代码39)
我的Cypher查询看起来像这样
MATCH (n:Test {id:'test'}) SET n.`label` = 'John Doe\'s house';
虽然这个查询在Neo4J的浏览器界面中执行时效果很好,但在使用REST API时却失败了。这是一个错误还是我做错了什么?如果这不是一个错误,我如何逃避'
以使其在两者中都有效?
修改
我找到this answer并测试了三重单引号和三重双引号,但它们只是引发了另一个Neo.ClientError.Request.InvalidFormat
错误。
注意:我使用的是Neo4J 2.2.2
注意2:以防万一重要,下面是我发送给端点的JSON正文。
{"statements":[
{"statement": "MATCH (n:Test {id:'test'}) SET n.`label` = 'John Doe\'s house';"}
]}
答案 0 :(得分:3)
你也必须逃避\:
{"statements":[
{"statement": "MATCH (n:Test {id:'test'}) SET n.`label` = 'John Doe\\'s house';"}
]}
但是如果你使用参数(推荐),你可以做
{"statements":[
{"statement": "MATCH (n:Test {id:'test'}) SET n.`label` = {lbl}",
"parameters" : {"lbl" : "Jane Doe's house"}
}
]}