curl:JSON中的意外标记

时间:2017-12-19 05:36:24

标签: json bash curl

当我尝试提交此消息时,服务器会将消息发回给我

"Unexpected token t in JSON at position 1".

无论第一个非{非“字符是什么,它都会这样做。如果我输入{”“:”“}它会说

"Unexpected token : in JSON at position 1".

这是我的代码。

  curl -H "Content-Type: application/json" -d {"test": "test"} url

我已经尝试过其他变种,在它周围加上引号并转义引号无济于事,但如果你认为这个问题可以随意提出格式。

1 个答案:

答案 0 :(得分:1)

您需要保护双引号和空格。您可以使用单引号执行此操作,因此:

curl -H "Content-Type: application/json" -d '{"test": "test"}' url

如果没有单引号,shell会将双引号视为语法的一部分并将其删除,因此curl只会看到

{test:

作为-d选项和

的参数
test}

作为单独的参数发送。使用双引号,curl会将此视为-d的参数:

{"test": "test"}

你也可以用反斜杠实现这个目标,这有点麻烦:

curl -H "Content-Type: application/json" -d {\"test\":\ \"test\"} url

请参阅以下相关帖子/文档: