[ { "operation": "shift", "spec": { "ratings": { "*": { "$": "Ratings[#2].Name",//"Ratings[#2].Name": 将当前键(例如 "primary") 作为值输出到 Ratings[#2].Name。其中 $ 表示键的名称 "@": "Ratings[#2].Value"//"Ratings[#2].Value": 将当前值(例如 5) 作为值输出到 Ratings[#2].Value。其中 @ 表示值。 } } } } ] //#2实际表示向上回溯两级,索引从 0 开始 //#number 用于引用树中的层级索引 //#2的核心作用:回溯路径层级,完成动态索引填充 //当前路径:root(0) → ratings(1) → *(2) → 当前操作(3) //#2表示从第3级向上回溯2级,即回到第1级(ratings层级) //回溯后,Jolt会获取该层级(如ratings)下匹配项的运行时索引值(从0开始自动生成) //例如:输入JSON的ratings有3个子键:primary(索引0)、quality(索引1)、design(索引2) //处理primary时,#2回溯到ratings并获取索引0;处理design时获取索引2 //在LHS RHS都可以使用,但是意义不同 //在RHS, #号只在数组中有效 比如[#2] //在LSH中,#允许您指定硬编码字符串作为输出中的值 //在LSH中,#是根节点,不允许有子节点