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

JOLT规范中RHS的[]有何作用?为何带[]的Shift规则才生效?

JOLT Shift中RHS方括号[]的作用解析

在你的场景里,核心区别在于JOLT如何解析回溯引用&1的结果,方括号[]的作用是强制生成数组结构,具体拆解如下:

  1. 回溯引用&1的含义
    &n是JOLT Shift里的回溯语法,用来获取当前路径往上第n层的键名。你的输入是数组,*匹配的是数组的索引(0、1这类数字字符串),所以&1会拿到这些索引值。

  2. 无方括号的情况:&1.name
    当你直接写&1.name时,JOLT会把&1解析出的索引(比如"0")当作对象的键名,最终输出会变成一个普通对象,结构是:

{
  "0": { "name": "my name1" },
  "1": { "name": "my name2" }
}

这显然不是你想要的数组结构。

  1. 有方括号的情况:[&1].name
    []是JOLT里专门用来标记数组的语法,它告诉JOLT:把&1解析出的索引值当作数组的下标,将对应的数据放到数组的指定位置。最终输出会保持数组结构:
[
  { "name": "my name1" },
  { "name": "my name2" }
]

简单说,[]的核心作用就是明确告诉JOLT要生成数组,而不是对象,让回溯引用的索引值对应数组的下标,而非对象的键。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 03:41:30