【发布时间】:2020-06-23 12:27:03
【问题描述】:
我实际上在 bash 中有 2 个包含字符串值的数组。 类似的东西:
Array1=(Kevin Paul)
Array2=(OK DANGER)
我想创建一个具有 2 个属性的 json,如果可能的话,类似的东西
{
"results":[
{
"nom":"Kevin",
"status":"OK"
},
{
"nom":"Paul",
"status":"Danger"
}
]
}
我读了很多关于 JQ 的文章,我已经将它们用于我的数组,但没有人谈论我想要的东西 :(
我的一个测试(没有回应我想要的):
declare -a test_array
declare -a test_array2
test_array=(apple orange lemon)
test_array2=(DANGER OK WARNING)
echo ${test_array[0]}
echo '['
printf '{"CVEC": "%s", "LVL" : "%s"},\n' "${test_array[@]}, ${test_array2[@]}" | sed '$s/,$//'
echo ']'
Display
[
{"CVEC": "apple", "LVL" : "orange"},
{"CVEC": "lemon, DANGER", "LVL" : "OK"},
{"CVEC": "WARNING", "LVL" : ""}
]
【问题讨论】:
-
使用
jq的原因是,无论什么值存储在数组中,它都能确保有效的JSON。纯粹的bash方法要求您对值进行所有检查,以确保正确处理需要转义的内容。 -
是的,但是我没有找到任何响应此问题的 bash 和 json 构建:(
-
那是因为
bash没有内置的方法来安全地处理生成的 JSON。 -
看来您正在寻找 zip 功能。例如。 github.com/stedolan/jq/issues/609
-
不,完全不是我需要的