我有一个包含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
答案 0 :(得分:2)
shell将其解释为多个参数。引用扩展(如-d "$VAL"
中所述)或管道扩展而不是将其保存到变量jq '...' | curl ...