【问题标题】:Import JSON using WITH in Neo4j在 Neo4j 中使用 WITH 导入 JSON
【发布时间】:2016-09-14 10:39:13
【问题描述】:

我正在尝试使用 JSON,最终将其导入 Neo4j。

我使用类似的东西,它是一个很大的 JSON 字符串:

WITH [
{"fullname":"Full name","note":"f","addr":[],"phone":[],"email":[{"value":"mail@city.com"}],"first_name":"","last_name":""},
..
] AS contacts

第一个联系人的颜色主要是橙色,然后其他联系人变成绿色,然后是黑色。

我收到以下错误:

Invalid input '"': expected whitespace, an identifier, UnsignedDecimalInteger, a property key name or '}'

我可以使用 http://jsonviewer.stack.hu/ 查看我的 JSON 文件,而且看起来不错

我是否需要转义某种字符,以便 Neo4j 理解它?

编辑:

根据 Martins 的回答,我使用 PHP 中的正则表达式从以下位置删除了引号: Remove double-quotes from a json_encoded string on the keys

【问题讨论】:

    标签: json neo4j cypher


    【解决方案1】:

    删除键周围的引号。错误消息告诉您它需要一个property key。 Cypher 在这里不使用 JSON。

    WITH [
    {fullname:"Full name",note:"f",addr:[],phone:[],
    email:[{value:"mail@city.com"}],
    first_name:"",last_name:""}
    ] AS contacts
    RETURN contacts
    

    neo4j 驱动程序或客户端库将处理从字典类结构作为参数传递的数据:https://neo4j.com/docs/developer-manual/current/cypher/#cypher-parameters

    如果您想使用 JSON 并可能从外部源加载它,您应该查看 APOC 程序:https://neo4j-contrib.github.io/neo4j-apoc-procedures/

    例如,这会将 JOSN 字符串转换为可在 Cypher 中使用的映射:https://neo4j-contrib.github.io/neo4j-apoc-procedures/#_from_tojson

    CALL apoc.convert.fromJsonMap(
    '{"fullname":"Full name","note":"f","addr":[],"phone":[],
    "email":[{"value":"mail@city.com"}],"first_name":"","last_name":""}'
    ) 
    YIELD value
    RETURN value
    

    【讨论】:

    • APOC 程序将来听起来很方便,内部来源也可以吗?如果文件在我的 VPS 上的 Neo4j 文件夹中?
    • 没有LOAD JSON FROM ...。你必须做这个应用程序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多