Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json Shell脚本不适用于curl请求_Json_Bash_Shell_Curl - Fatal编程技术网

Json Shell脚本不适用于curl请求

Json Shell脚本不适用于curl请求,json,bash,shell,curl,Json,Bash,Shell,Curl,我想用Databox发出一个curl请求来推送somemetrix,并想在shell脚本中完成它。 下面是databox POST请求示例(其工作原理类似于一个符咒) 当我将json主体形成为一个单独的json字符串并尝试作为参数传递时,它不起作用,并给出一个json解析错误。我不确定我在这里做错了什么。有人能帮忙吗?我不熟悉shell脚本 #!/bin/bash JSON_STRING= '{"data" : [{"$testcount":50,&quo

我想用Databox发出一个curl请求来推送somemetrix,并想在shell脚本中完成它。 下面是databox POST请求示例(其工作原理类似于一个符咒)

当我将json主体形成为一个单独的json字符串并尝试作为参数传递时,它不起作用,并给出一个json解析错误。我不确定我在这里做错了什么。有人能帮忙吗?我不熟悉shell脚本

#!/bin/bash
JSON_STRING= '{"data" : [{"$testcount":50,"testname":"test"}]}'
echo    "$JSON_STRING" 

curl https://testpush \
-u token
: \
-X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/vnd.databox.v2+json' \
-d '$JSON_STRING'
    
错误:
{“type”:“invalid_json”,“message”:“invalid request body-json parse error”}


我已经为请求添加了令牌,因此授权应该有效。

您在
=
周围有多余的空格


另外,第二个脚本最后一行中的
$JSON_STRING
应该使用双引号,而不是单引号,以便将其展开为您刚才设置的内容


顺便说一句,如果数据失控或敏感,您可能希望研究以字母
@
开始数据的可能性,然后将其余部分作为包含数据的文件名。

=
周围有多余的空格。此外,第二个脚本的最后一行中的
$JSON_STRING
应该用双引号括起来,以便将其扩展为您刚才设置的值。我删除了多余的空间并添加了双引号-d'$JSON_STRING''。但仍然得到相同的错误现在删除单引号。我应该说清楚一点。是的,非常感谢:)
#!/bin/bash
JSON_STRING= '{"data" : [{"$testcount":50,"testname":"test"}]}'
echo    "$JSON_STRING" 

curl https://testpush \
-u token
: \
-X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/vnd.databox.v2+json' \
-d '$JSON_STRING'