如何将 JSON 作为字符串插入另一个 JSON
How to insert JSON as string into another JSON
我正在编写脚本(bash 用于 Azure 管道的脚本),我需要合并来自不同变量的 JSON。例如,我有:
TYPE='car'
COLOR='blue'
ADDITIONAL_PARAMS='{"something": "big", "etc":"small"}'
因此,如您所见,我有几个字符串变量,其中一个包含 JSON.
我需要将这些变量与这种格式结合起来(我不能 :( ):
some_script --extr-vars --extra_vars '{"var_type": "'$TYPE'", "var_color": "'$COLOR'", "var_additional_data": "'$ADDITIONAL_PARAMS'"}'
但是这个组合不起作用,我有一个类似这样的字符串:
some_script --extr-vars --extra_vars '{"var_type": "car", "var_color": "blue", "var_additional_data": " {"something": "big", "etc":"small"} "}'
不正确且无效 JSON。
如何将现有的 JSON(已经用双引号格式化)与其他变量结合起来?我正在使用 bash / console / yq utilite(将 yaml 转换为 json )
使用jq
生成JSON。 (您可能可以使用 yq
一步完成此操作,但我不太熟悉该工具。)
ev=$(jq --arg t "$TYPE" \
--arg c "$COLOR" \
--argjson ap "$ADDITIONAL_PARAMS" \
-n '{var_type: $t, var_color: $c var_additional_data: $ap}')
some_script --extr-vars --extra_vars "$ev"
我正在编写脚本(bash 用于 Azure 管道的脚本),我需要合并来自不同变量的 JSON。例如,我有:
TYPE='car'
COLOR='blue'
ADDITIONAL_PARAMS='{"something": "big", "etc":"small"}'
因此,如您所见,我有几个字符串变量,其中一个包含 JSON.
我需要将这些变量与这种格式结合起来(我不能 :( ):
some_script --extr-vars --extra_vars '{"var_type": "'$TYPE'", "var_color": "'$COLOR'", "var_additional_data": "'$ADDITIONAL_PARAMS'"}'
但是这个组合不起作用,我有一个类似这样的字符串:
some_script --extr-vars --extra_vars '{"var_type": "car", "var_color": "blue", "var_additional_data": " {"something": "big", "etc":"small"} "}'
不正确且无效 JSON。
如何将现有的 JSON(已经用双引号格式化)与其他变量结合起来?我正在使用 bash / console / yq utilite(将 yaml 转换为 json )
使用jq
生成JSON。 (您可能可以使用 yq
一步完成此操作,但我不太熟悉该工具。)
ev=$(jq --arg t "$TYPE" \
--arg c "$COLOR" \
--argjson ap "$ADDITIONAL_PARAMS" \
-n '{var_type: $t, var_color: $c var_additional_data: $ap}')
some_script --extr-vars --extra_vars "$ev"