input.json:-
{
"menu": {
"id": "file",
"value": "File",
"user": {
"address": "USA",
"email": "user@gmail.com"
}
}
}
命令:-
result=$(cat input.json | jq -r '.menu | keys[]')
结果:-
id
value
user
遍历结果:-
for type in "${result[@]}"
do
echo "--$type--"
done
输出:-
--id
value
user--
我想在循环中处理键值。当我执行上述操作时,结果为单个字符串。
如何使用 json 键循环生成 bash 脚本?
最佳答案
规范的方式:
file='input.json'
cat "$file" | jq -r '.menu | keys[]' |
while IFS= read -r value; do
echo "$value"
done
但你似乎想要一个数组,所以语法是(缺少括号):
file='input.json'
result=( $(cat "$file" | jq -r '.menu | keys[]') )
for type in "${result[@]}"; do
echo "--$type--"
done
输出:
--id--
--value--
--user--
关于json - 如何循环来自bash脚本的json键结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49382979/