2015-09-21 30 views
1

虽然送别的Cypher查询Neo4J's transactional Cypher API,我遇到了以下错误:Neo4j的事务REST API字符串转义不起作用

Neo.ClientError.Request.InvalidFormat Unable to deserialize request: Unrecognized character escape ''' (code 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';"} 
]} 

回答

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

]} 
+0

谢谢!应该知道这是因为JSON。 :) –