相关疑难解决方法(0)

使用 jq 将 JSON 数组转换为 bash 变量

我有一个像这样的 JSON 数组:

{
  "SITE_DATA": {
    "URL": "example.com",
    "AUTHOR": "John Doe",
    "CREATED": "10/22/2017"
  }
}
Run Code Online (Sandbox Code Playgroud)

我希望使用 jq 迭代这个数组,这样我就可以将每个项目的键设置为变量名,将值设置为它的值。

例子:

  • 网址="example.com"
  • 作者=“约翰·多伊”
  • 创造="10/22/2017"

到目前为止,我对数组进行了迭代,但创建了一个字符串:

constants=$(cat ${1} | jq '.SITE_DATA' | jq -r "to_entries|map(\"\(.key)=\(.value|tostring)\")|.[]")
Run Code Online (Sandbox Code Playgroud)

哪些输出:

URL=example.com
AUTHOR=John Doe
CREATED=10/22/2017
Run Code Online (Sandbox Code Playgroud)

我希望在脚本中进一步使用这些变量:

echo ${URL}
Run Code Online (Sandbox Code Playgroud)

但这目前与空输出相呼应。我猜我需要一个eval或什么在那里,但似乎无法将我的手指放在上面。

bash jq

24
推荐指数
2
解决办法
5万
查看次数

标签 统计

bash ×1

jq ×1