我有一个像这样的 JSON:
[
{
"id": 1015380,
"type": "campaign",
"stats": [
{
"month": "2023-07",
"spent": "3116.90",
"impressions": 17783,
"clicks": 78
},
{
"month": "2023-08",
"spent": "1490.36",
"impressions": 6721,
"clicks": 17
}
]
},
{
"id": 1015695,
"type": "campaign",
"stats": [
{
"month": "2023-08",
"spent": "1490.36"
}
]
}
]
我想将 stats
数组取消嵌套到顶层并获得如下结果:
尝试使用下面的脚本,但它将来自 stats
的值存储为数组:
[
{
"operation": "shift",
"spec": {
"*": {
"stats": {
"*": {
"@(2,id)": "[&3].id",
"*": "[&3].&"
}
}
}
}
}
]
如何解决?
最佳答案
您可以使用以下shift转换规范
[
{
"operation": "shift",
"spec": {
"*": {
"stats": {
"*": {
"@2,id": "&3_&1.id",
"*": "&3_&1.&"
}
}
}
}
},
{
"operation": "shift",
"spec": {
"*": ""
}
}
]
在当前情况下,仅遍历最外层对象的索引值,而此建议情况将遍历统计数组的索引(例如&1
)以及分组依据两个不同的标识符在数组中生成独立的对象
网站上的演示 http://jolt-demo.appspot.com/是:
关于json - Jolt 将值从数组移动到顶层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76960072/