[英]Flatten JSON with Jq with array index in output
我正在尝试基于嵌套的 Json 创建单个 json 输出:
{
"Id" : "1",
"items" : [
{"item_name" : "shirt","value" : 10},
{"item_name" : "dress","value" : 20},
{"item_name" : "ice cream","value" : 30}
]
}
我的预期输出是:
[
{
"id": "1",
"item_name": "shirt",
"value": 10,
"index_position": 0
},
{
"id": "1",
"item_name": "dress",
"value": 20,
"index_position": 1
},
{
"id": "1",
"item_name": "ice cream",
"value": 30,
"index_position": 2
}
]
我能够获取的唯一输出是在这个片段上:
https://jqplay.org/s/G6mYAI47LE
迭代内部数组并同时获取外部对象数据的最佳方法是什么?
QED如下:
.Id as $Id
| .items
| [ range(0; length) as $index_position
| {$Id} + .[$index_position] + {$index_position} ]
这里简洁(或至少 DRY-ness)的关键是 jq 表达式{$x}
扩展为{"x": $x}
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.