跳转至

JSON Replace 字段更新与点号路径替换节点

利用点号路径表达式更新或替换 JSON 数据中的特定值。

节点核心功能 (Description)

JSON Replace 节点允许创作者使用直观的点号路径(Dot Notation)定位并修改 JSON 中的目标字段。为了杜绝脏数据对上游数据源的意外污染,节点在修改前会自动对原始数据执行深拷贝(Deep Copy);当指定的路径分支尚不存在时,它还会智能地按路径递归创建缺失的中间对象或数组。

配置与参数规范 (Parameters)

输入插槽 (Input Parameters)

参数名称 (Parameter) 数据类型 (Type) 语义说明 (Description) 默认值 (Default)
json json, str, dict 待执行字段修改的目标源 JSON 数据。 {}
path str 用于定位待替换位置的点号路径(例如 'user.name'、'items[0].title')。 ""
replacement_value json, str, dict 准备写入目标路径的全新数值(支持任意合法数据类型)。 ""

输出引脚 (Output Parameters)

输出名称 (Parameter) 数据类型 (Type) 语义说明 (Description)
output json 完成字段替换与更新后的全新独立 JSON 数据工件。

核心特性解析 (Features)

  • 深拷贝内存隔离保护 (Deep Copy Protection):修改前对原始数据进行深层复制,绝对不污染或修改上游的原始输入对象;
  • 自愈式路径自动补全 (Path Creation):若目标路径中的中间键不存在,节点会自动创建对应的父级字典,无需手动预判;
  • 全能数组索引支持:完美支持形如 items[0].name 的数组切片定位;
  • 毫秒级即时重算:任意参数或替换值发生修改时,实时输出最新更新结果。

路径语法规则 (Path Syntax)

基础对象键替换

# 替换嵌套对象中的属性值
path = "user.name"  # 替换用户姓名
path = "user.profile.email"  # 替换深层嵌套的邮箱

数组下标元素替换

# 替换数组中的具体项
path = "items[0]"  # 替换第一个数组元素
path = "items[0].title"  # 替换第一个元素的标题字段

深度复合路径

path = "orders[0].items[1].price"  # 替换首个订单中第二个商品的单价

使用代码示例 (Examples)

基础单值更新

# 原始 JSON: {"user": {"name": "John", "age": 30}}
# 路径 Path: "user.name"
# 替换值 Replacement Value: "Jane"
# 输出 Output: {"user": {"name": "Jane", "age": 30}}

自动递归创建缺失路径

# 原始 JSON: {"user": {"name": "John"}}
# 路径 Path: "user.email"  # 原本不存在 email 键
# 替换值: "john@example.com"
# 输出: {"user": {"name": "John", "email": "john@example.com"}}

数组元素字段局部修改

# 原始 JSON: {"items": [{"title": "Book", "price": 25}, {"title": "Magazine", "price": 10}]}
# 路径: "items[0].title"
# 替换值: "Novel"
# 输出: {"items": [{"title": "Novel", "price": 25}, {"title": "Magazine", "price": 10}]}

数组越界扩展补位

# 原始 JSON: {"items": [{"title": "Book"}]}
# 路径: "items[2].title"
# 替换值: "Magazine"
# 输出: {"items": [{"title": "Book"}, null, {"title": "Magazine"}]}  # 自动填充 null 补齐空位

典型适用场景 (Use Cases)

  • 动态数据注入:将用户在前端表单输入的最新变量替换到预设的 JSON 请求体中;
  • API 请求体拼装:在调用外部 RESTful 接口前,对模板报文执行特定鉴权或时间戳字段覆写;
  • 配置字典热更新:安全更新工作流或模型运行时的局部超参数设置。