移动 JSON 字段,明确处理冲突与缺失
将准确的对象路径映射到新位置,同时保留无关字段和原始数字。先明确选择移动还是复制,两者的区别在于是否保留源字段。
如何操作
读取源数据结构
粘贴一个 JSON 对象,或只包含对象的数组,然后点击“读取字段”。输入对象数组时,每条记录都会分别应用同一组映射。
填写准确的源路径和目标路径
填写 $.user.name 和 $.customer.displayName 这样的路径,选择“移动字段”或“复制字段”,并决定源字段缺失时是报错停止,还是跳过并报告数量。
核对结果并复用规则
生成预览后同时检查原分支和目标分支。可以复制或下载结果,也可以点击“带入流水线复用”,把输入与规则传递给本地流水线。
输入与预期输出
移动姓名,保留原来的编号
界面设置: 映射方式选择“移动字段”,源字段缺失时选择“报错并停止”。使用一条规则:源路径 $.user.name,目标路径 $.customer.displayName。
{"user":{"name":"Ada","id":9007199254740993},"active":true}{
"user": {
"id": 9007199254740993
},
"active": true,
"customer": {
"displayName": "Ada"
}
}源 name 字段被移除,原本不存在的 customer 对象被创建,user.id 与 active 保持不变。如果选择复制模式,user.name 也会保留。大整数不会被舍入。
边界与检查事项
- 已有目标字段与规则冲突
- 目标字段已经存在时,即使其值为 null 也会报错。目标路径不能与源路径或其他目标路径重叠;移动规则的源路径也不能相互重叠。目标父节点不是对象时会报错,不会直接替换。
- 精确路径与处理上限
- 路径支持对象字段和引号包裹的键名,不支持数组下标、通配符或表达式。嵌套数组可以作为整体移动。输入最多 1 MiB 和 10,000 条记录,可设置 1–32 条规则,每条路径最多 16 个对象字段,输出最多 10 MiB。
结果解读与常见疑问
源字段缺失等于值为 null 吗?
不是。已存在的 null 是一个可以移动或复制的值。不存在的字段按报错或跳过设置处理;跳过会保留记录的其他内容,并报告省略了多少次映射。
移动后会自动删除空的父对象吗?
不会。移动最后一个子字段后,原父对象会保留为空对象,不会悄悄删掉其他结构。如果目标接口区分空对象与缺失字段,应检查这一结果。