gpt4 book ai didi

json - 如何在 bash 脚本中遍历 json

转载 作者:行者123 更新时间:2023-11-29 08:59:32 26 4
gpt4 key购买 nike

我有如下的 json,我只需要在 bash 脚本中从上面的 json 获取邮件

value={"count":5,"users":[{"username":"asa","name":"asa Tran","mail":"asa@xyz.com"},{"username":"qq","name":"qq Morris","mail":"qq@xyz.com"},{"username":"qwe","name":"qwe Org","mail":"qwe@xyz.com"}]}

输出可以是

mail=asa@xyz.com,qq@xyz.com,qwe@xyz.com

以上都需要在bash脚本(.sh)中完成

我已经尝试过数组迭代,但没有用

for key in "${!value[@]}"
do
#echo "key = $key"
echo "value = ${value[$key]}"
done

我什至尝试过将数组转换为

alias json-decode="php -r 'print_r(json_decode(file_get_contents(\"php://stdin\"),1));'" value=$(curl --user $credentials -k $endPoint | json-decode)

我仍然无法获得特定的输出。

最佳答案

jq 是遍历 json 的工具。在你的情况下:

while read user; do
jq -r '.mail' <<< $user
done <<< $(jq -c '.users[]' users.json)

会给出:

asa@xyz.com
qq@xyz.com
qwe@xyz.com

注意:我删除了“value=”,因为它不是有效的 json。 Users.json 包含:

{"count":5,"users":[{"username":"asa","name":"asa Tran","mail":"asa@xyz.com"},{"username":"qq","name":"qq Morris","mail":"qq@xyz.com"},{"username":"qwe","name":"qwe Org","mail":"qwe@xyz.com"}]}

关于json - 如何在 bash 脚本中遍历 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19488408/

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