kangarooDataCenterV3/jolt-demo/shift/spec5.json

35 lines
1.5 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[
{
"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"