35 lines
1.5 KiB
JSON
35 lines
1.5 KiB
JSON
|
[
|
|||
|
{
|
|||
|
"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"
|