28 lines
1.2 KiB
JSON
28 lines
1.2 KiB
JSON
|
[
|
|||
|
{
|
|||
|
"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中,#是根节点,不允许有子节点
|