CouchDB cURL Windows命令行无效的JSON

时间:2013-08-19 13:17:39

标签: json curl command-line couchdb

使用cURL从Windows命令行运行以下命令,尝试将新文档发布到现有CouchDB数据库(命名为test)失败:

curl -H "Content-Type: application/json" -X POST "http://127.0.0.1:5984/test" -d {"valid":"json"}

它返回错误:

{"error":"bad_request","reason":"invalid_json"}

JSON是有效的,所以给出了什么?

2 个答案:

答案 0 :(得分:12)

答案与命令行上JSON字符串的格式有关。即使你键入它是正确的JSON,它似乎必须在发送它之前重新格式化它。(也许其他人可以解释为什么它会更详细地解释它。)要解决这个问题,你需要逃避你的引用命令行如下:

curl -H "Content-Type: application/json" -X POST "http://127.0.0.1:5984/test" -d {"""valid""":"""json"""}

看到多余的引号?这应该工作并返回带有id和修订号的“ok:true”。

答案 1 :(得分:4)

你还必须引用整个声明以支持以下空格:-d“{\”title \“:\”没有什么可以失去\“,”艺术家“:\”Foo Fighters \“} “