如何使用jq将现有JSON数组包裹到含Objects键的对象中?
使用jq将JSON数组包装为指定对象结构
直接用以下jq命令就能完成转换,完全不需要手动处理双引号的转义问题:
# 从文件读取输入并输出结果 jq '{Objects: .}' input.json # 或者通过管道传递输入内容 cat input.json | jq '{Objects: .}'
命令解释
.在jq中代表当前处理的整个输入内容,这里就是你提供的JSON数组{Objects: .}会创建一个新的JSON对象,其中Objects键的值就是原输入的数组,jq会自动处理所有JSON语法规范,包括双引号的正确生成。
效果验证
输入的原JSON:
[ { "Robin": "id1" }, { "John": "id2" }, { "Jane": "id3" } ]
执行命令后得到的输出:
{ "Objects": [ { "Robin": "id1" }, { "John": "id2" }, { "Jane": "id3" } ] }
直接修改原文件(可选)
如果需要直接覆盖原文件的内容,可以借助sponge工具(需先安装moreutils包):
jq '{Objects: .}' input.json | sponge input.json
内容的提问来源于stack exchange,提问作者Kings Light
相关产品推荐
相关产品推荐

