【发布时间】:2021-03-23 22:26:23
【问题描述】:
我正在尝试读取 json 文件并将键存储为 bash 变量,并将值存储为变量值。例如这里是我的 test.json:
{
"Day":'0',
"num":'85',
"Qtr":"[20183, 20184, 20191, 20192]",
"pSize":"75"
}
我需要将这样的变量存储在 bash 文件中:
$Day=0
$num=85
$Qtr=[20183, 20184, 20191, 20192]
$psize=75
我找到了一种使用 jq 提取值的方法,但我无法将键作为变量存储在 bash 中
-bash-4.2$ Qtr=`jq .Qtr test.json`
-bash-4.2$ echo $Qtr
"[20183, 20184, 20191, 20192]"
有人可以提供一个关于如何遍历 json 文件并将键存储为变量和值存储为值的 sn-p 吗?
提前谢谢你
【问题讨论】:
-
你试过导出 Qtr=
jq .Qtr test.json吗? -
谢谢。是的,你可以看到我的帖子,我已经尝试过了。主要问题是如何将密钥作为变量存储在 bash 中?
-
商店是什么意思?你到底想做什么?你不是在回显一个存储值吗?
-
那么上面的 JSON 中有一些错误。 1:您不应该使用单引号
'和 2:看起来像数组的东西并不是因为它实际上是一个字符串(它周围有引号)。 -
修复字符串问题后:
Qtr =( $(jq .Qtr[] test.json) )