我在jsonFile中有一个json商店
{
"key1": "aaaa bbbbb",
"key2": "cccc ddddd"
}
我的代码在mycode.sh
:
#!/bin/bash
value=($(jq -r '.key1' jsonFile))
echo "$value"
运行./mycode.sh
后,结果为aaaa
但如果我只是运行jq -r '.key1' jsonFile
,则结果为aaaa bbbbb
有人可以帮助我吗?
答案 0 :(得分:18)
使用该行代码
value=($(jq -r '.key1' jsonFile))
您要将这两个值分配给array。请注意命令周围的外部parantheses ()
。
因此,您可以单独访问值或回显整个数组的内容。
$ echo "${value[@]}"
aaaa bbbb
$ echo "${value[0]}"
aaaa
$ echo "${value[1]}"
bbbb
由于您回显$value
而未指定要获取的值,因此只能获取数组的第一个值。
答案 1 :(得分:3)
local result=$(<your_json_response>)
local aws_access_key=$(jq -r '.Credentials.AccessKeyId' <<< ${result})
local aws_secret_key=$(jq -r '.Credentials.SecretAccessKey' <<< ${result})
local session_token=$(jq -r '.Credentials.SessionToken' <<< ${result})
以上代码是从json响应中获取值的另一种方法。