如何使用jq将嵌套对象数组转换为扁平化字符串数组?
使用jq将嵌套对象数组转换为字符串数组
你只需要对.route数组使用map(.nodename)提取每个对象中的nodename字段,替换原命令中直接引用.route的部分即可。
完整jq命令
.result.info | { name: .name, route: .route | map(.nodename) }
命令说明
.result.info:定位到目标数据所在的层级{ name: .name }:保留原有的name字段route: .route | map(.nodename):遍历route数组中的每个对象,提取每个对象的nodename值,将对象数组转换为字符串数组
验证示例
输入JSON:
{ "message-id": 1, "result": { "info": { "id": 1, "name": "foobar", "route": [ { "nodeid": 1, "nodename": "name-1" }, { "nodeid": 2, "nodename": "name-2" } ] } } }
执行命令后输出:
{ "name": "foobar", "route": [ "name-1", "name-2" ] }
内容的提问来源于stack exchange,提问作者gdt
相关产品推荐
相关产品推荐

