将shell变量中的json字符串转换为字符串文字

时间:2015-10-04 14:41:56

标签: json bash jq

我有一个包含json的shell变量,如下所示

{     "测试" :"测试&#34 ;,      "温度":"温度"   }

这是我从jq解析时得到的json的一部分,这是一个json解析器工具。但是当我将它作为post请求体的一部分传递给curl时,它将被转换为

   '{' 
     '"test"' ':' 'test,'
      '"temp"' ':' 'temp'
   '}'

但我希望它为

   '{
      "test" : "test",
      "temp" : "temp"
    }'

VAL=$(echo "$RET" | jq ".pending[$j].value")

VAL是包含json的变量   我需要将此VAL作为请求体传递给curl

curl -X POST -H "$CONTENT_HEADER" -H "$AUTH_HEADER" http://localhost:8080/testApi -d $VAL

1 个答案:

答案 0 :(得分:2)

shell将其解释为多个参数。引用扩展(如-d "$VAL"中所述)或管道扩展而不是将其保存到变量jq '...' | curl ...