gpt4 book ai didi

json - 如何循环来自bash脚本的json键结果

转载 作者:行者123 更新时间:2023-12-05 00:45:48 25 4
gpt4 key购买 nike

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

bash faq #1


但你似乎想要一个数组,所以语法是(缺少括号):

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com