我是JOLT的新手。我正在创建一个JOLT规范,将JSON从一种格式解析为另一种格式。然而,当我使用RHS"&1.name"
时它没有像预期的那样工作,并且创建了不同的格式。但是当我使用"[&1].name"
时
由于策略限制,我无法共享数据。举个例子
。输入JSON:
[
{
"name": "my name1"
},
{
"name": "my name2"
}
]
JOLT规范(不工作):
[
{
"operation": "shift",
"spec": {
"*": {
"name": "&1.name"
}
}
}
]
JOLT规范(working):
[
{
"operation": "shift",
"spec": {
"*": {
"name": "[&1].name"
}
}
}
]
请帮助我理解[]在RHS上的目的。
两个规格都有效
&1
:
键.
[&1]
:
索引.
&1
意味着0
和1
作为键你的输出可以像这样:
{
"0": {
"name": "my name1"
},
"1": {
"name": "my name2"
}
}
当您使用[&1]
时,意味着0
和1
作为索引的数组,你的输出可以像这样:
[
{
"name": "my name1"
},
{
"name": "my name2"
}
]
您甚至可以通过替换name
在右侧加&符号&
[
{
"operation": "shift",
"spec": {
"*": {
"name": "[&1].&"
}
}
}
]
为了复制它
[&1]
and&1
1通过遍历左花括号({
)来达到最外层数组的索引级别。)一次。但是第一个生成的是数组结果,而不是索引号0,1,2…这些是由第二个生成的。