You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将大型JSON文件导入Neo4j?APOC导入报错求助

问题解决:APOC导入双层数组JSON报错

错误原因

你使用的apoc.import.json默认期望顶层是单个JSON对象或单层对象数组,但你的JSON是双层嵌套数组([[{...}]]),Jackson解析器无法将数组类型反序列化为预期的LinkedHashMap,因此抛出类型不匹配错误。

解决方案

方案1:修改JSON结构(推荐,若允许修改文件)

直接移除最外层的数组包裹,将JSON顶层改为单层对象数组,比如从:

[[{ 
    "id" : "149715690143449899009",
    "objectType" : "activity",
    "actor" : {
        // ...
    }
}]]

改为:

[{ 
    "id" : "149715690143449899009",
    "objectType" : "activity",
    "actor" : {
        // ...
    }
}]

修改后即可正常使用CALL apoc.import.json("file:///eight9.json")导入。

方案2:不修改JSON,用apoc.load.json手动处理嵌套层级

如果无法修改JSON文件,使用apoc.load.json加载整个JSON结构,再通过UNWIND逐层提取数据,示例代码:

// 加载JSON文件
CALL apoc.load.json("file:///eight9.json") YIELD value
// 展开外层数组
UNWIND value AS outerArray
// 展开内层的活动对象数组
UNWIND outerArray AS activityData
// 创建Activity节点
CREATE (a:Activity {id: activityData.id, objectType: activityData.objectType})
// 处理actor关联(示例,根据你的实际数据结构调整)
WITH a, activityData.actor AS actorData
MERGE (actor:Actor {id: actorData.id})
MERGE (a)-[:ACTED_BY]->(actor)

apoc.load.json支持任意JSON结构,适合处理非标准格式的嵌套数据,你可以根据实际的JSON字段扩展节点属性和关系创建逻辑。


内容的提问来源于stack exchange,提问作者Mr_yassh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 04:35:35