我正在尝试使用 Jolt 根据查找图替换数组的值,但规范似乎不起作用。它一直工作到到达查找图,我可以移动整个图,但使用 & 引用每个键并不像预期的那样工作。
输入:
{
"records": [
{
"id": "1",
"keys": [
"ba2c89c3",
"aa2c89c3"
]
}
],
"lookup": {
"ba2c89c3": "EE",
"aa2c89c3": "EL"
}
}
预期输出:
{
"data": {
"records": [
{
"id": "1",
"vals": [
"EE",
"EL"
]
}
]
}
}
我试过规格但似乎不起作用。
[
{
"operation": "shift",
"spec": {
"records": {
"*": {
"id": "data.records[&1].id",
"keys": {
"*": {
"@(4,lookup.&)": "data.records[&3].vals"
}
}
}
}
}
}
]
您可以通过以下移位转换规范进行匹配,其中
"&"
左侧最里面的部分将起到作用:vals
如果没有值匹配,数组将完全消失网站上的演示Jolt Transform Demo Using v0.1.1是:
接受的答案确实解决了转换问题,但发布了我最终使用的解决方案。
由于问题在于
&
在迭代数组时使用引用值keys
而不是提供索引,因此有效的方法是使用*
在接受的解决方案中提供的值来获取该值。