jq
命令可以在命令行处理json数据。
看例子:
格式化输出:
echo -n '{"beans":[{"name":"ac"},{"name":"bc", "age":23}] }' | jq -r
{
"beans": [
{
"name": "ac"
},
{
"name": "bc",
"age": 23
}
]
}
选择key:
echo -n '{"beans":[{"name":"ac"},{"name":"bc", "age":23}] }' | jq -r '.beans'
[
{
"name": "ac"
},
{
"name": "bc",
"age": 23
}
]
返回列表长度:
echo -n '{"beans":[{"name":"ac"},{"name":"bc", "age":23}] }' | jq -r '.beans|length'
2
返回列表各项内容:
echo -n '{"beans":[{"name":"ac"},{"name":"bc", "age":23}] }' | jq -r '.beans[]'
{
"name": "ac"
}
{
"name": "bc",
"age": 23
}
返回列表的第0个元素:
echo -n '{"beans":[{"name":"ac"},{"name":"bc", "age":23}] }' | jq -r '.beans[0]'
{
"name": "ac"
}
返回列表的第1个元素:
echo -n '{"beans":[{"name":"ac"},{"name":"bc", "age":23}] }' | jq -r '.beans[1]'
{
"name": "bc",
"age": 23
}
返回列表的符合要求的元素:
echo -n '{"beans":[{"name":"ac"},{"name":"bc", "age":23}] }' | jq -r '.beans[]|select(.name=="bc")'
{
"name": "bc",
"age": 23
}
返回key对应value:
echo -n '{"beans":[{"name":"ac"},{"name":"bc", "age":23}] }' | jq -r '.beans[]|select(.name=="bc")|.age'
23