通过jq删除对象数组中的键
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过jq删除对象数组中的键相关的知识,希望对你有一定的参考价值。
如果我想在第一个输出中从JSON中删除age
。有没有办法一步完成,换句话说,没有调用jq 2次?
➜ $?=0 @arastogi-ld2.linkedin.biz inGraphs/common-templates [ 1:39AM] ➤ echo '[{"id": 1, "name": "Arthur", "age": "21"},{"id": 2, "name": "Richard", "age": "32"}]' | jq .
[
{
"id": 1,
"name": "Arthur",
"age": "21"
},
{
"id": 2,
"name": "Richard",
"age": "32"
}
]
>>> 0s elasped...
➜ $?=0 @arastogi-ld2.linkedin.biz inGraphs/common-templates [ 1:39AM] ➤ echo '[{"id": 1, "name": "Arthur", "age": "21"},{"id": 2, "name": "Richard", "age": "32"}]' | jq '.[] | del(.age)' | jq -s
[
{
"id": 1,
"name": "Arthur"
},
{
"id": 2,
"name": "Richard"
}
]
>>> 1s elasped...
➜ $?=0 @arastogi-ld2.linkedin.biz inGraphs/common-templates [ 1:39AM] ➤
答案
使用jq
调用时使用map()
非常简单。
jq 'map(del(.age))' < json
将map()
用于给定的过滤器del(.age)
将为输入数组的每个元素运行它,并以新数组的形式返回输出。
以上是关于通过jq删除对象数组中的键的主要内容,如果未能解决你的问题,请参考以下文章