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

如何使用通配符遍历Jolt Spec?@(3,clientId)层级规则是什么

Jolt通配符遍历与@(level, key)用法解答

核心规则先明确

Jolt的shift操作是自上而下逐层匹配输入JSON的结构,spec的每一层对应输入JSON当前层级的键,匹配通过后进入下一层处理。
其中@(level, key)是向上回溯取值的语法:

  • 层级计数相对于当前正在处理的输入JSON节点,不是spec的代码结构
  • 计数规则:当前正在处理的输入节点为0层,每向上找一级父节点,层数加1
  • 回溯到指定层级的节点后,会在该节点下查找名为key的字段,返回对应的值

你的示例分步解析

匹配逻辑梳理

你提供的spec会按如下路径匹配输入:

  1. 先匹配根节点下的data字段,拿到data对应的所有动态ID对象
  2. 用*通配符遍历data下的所有动态键(也就是1234、1235)
  3. 进入每个动态ID对象后,匹配hidden字段
  4. 根据hidden的布尔值进入true/false分支,执行输出映射

@(3,clientId)的取值逻辑

你编写@(3,clientId)的位置,当前处理的输入节点是hidden的布尔值(true/false),向上回溯3层后刚好到达包含clientId的动态ID对象,因此可以取到对应的12、35作为输出中clients对象的键。

完整输出生成逻辑

  1. 处理1234对象时,hidden值为true,将固定值disabled写入输出clients.12路径
  2. 处理1235对象时,hidden值为false,将固定值enabled写入输出clients.35路径
  3. 合并后就得到你看到的输出结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 14:15:08