Neo4J事务性REST api字符串转义不起作用

时间:2015-09-21 13:53:33

标签: java neo4j cypher

在向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';"}
]}

1 个答案:

答案 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"}
  }

]}