kangarooDataCenterV3/jolt-demo/shift/spec5.json

35 lines
1.5 KiB
JSON
Raw Normal View History

[
{
"operation": "shift",
"spec": {
"tag-*-*": "&(0,0)"//左边:* 是通配符,匹配所有以 tag- 开头的键、右边:& 是 Jolt 的引用操作符,用于提取匹配结果。
}
}
]
//&在LHS和RHS都能使用&是引用操作符
//(0,1) 指定引用方式0表示整个匹配的键如 tag-Pro、1表示通配符 * 捕获的部分
//&(0,1) 的含义:取匹配键中第一个通配符捕获的部分(即删除 tag- 前缀)
//在 Jolt 的 shift 操作中,& 是引用操作符,用于提取匹配模式中的特定部分。括号内的两个参数 (a,b) 分别表示:
//a层级回溯数指定从当前匹配位置向上回溯的层级数**0 表示当前层级1 表示父级,以此类推)
//b通配符序号指定使用第几个通配符捕获组**(从 1 开始计数)
//简记0 是“起点定位”1 是“目标提取”
//Jolt 通过路径层级管理数据匹配。a 参数控制回溯深度,解决嵌套结构问题:
//**&(0,1)**:当前层级 → 直接取 * 内容(如 Pro
//**&(1,1)**:回溯一级父层级 → 若父级是数组/对象,可能取父级键名
//**&(2,1)**:回溯两级 → 更上层的键名
//&在输入路径寻找值:
//{
// "foo" : {
// "bar": {
// "baz": // &0 = baz, &1 = bar, &2 = foo
// }
// }
//}
//需要指明使用第几个匹配值,比如说"tag-*-*"匹配到"tag-Foo-Bar",那么:
// &(0,0) = "tag-Foo-Bar"
// &(0,1) = "Foo"
// &(0,2) = "Bar"