首页 > 解决方案 > 如何使用 jq 将环境 bash 变量传递到 json

问题描述

我有这样的json

{
   "Subject": {
       "Data": "Value",
       "Charset": "UTF-8"
   },
   "Body": {
       "Text": {
           "Data": "Value",
           "Charset": "UTF-8"
       },
       "Html": {
           "Data": "Data example",
           "Charset": "UTF-8"
       }
   }
}

我需要从 bash 脚本传递到这个变量,如下所示:

{
   "Subject": {
       "Data": "Value $value1",
       "Charset": "UTF-8"
   },
   "Body": {
       "Text": {
           "Data": "Value $value2",
           "Charset": "UTF-8"
       },
       "Html": {
           "Data": "Data example",
           "Charset": "UTF-8"
       }
   }
}

我试过这个:

jq -n --arg value1 test --arg value2 -f message.jq 

但这忽略了message.jq中的$variables,当我删除“”时(message.jq中接近$variable的引号然后由json工作被破坏我需要带变量的引号。

标签: bashjq

解决方案


推荐阅读