couchdb curl windows命令行无效的json

CouchDB cURL Windows Command Line Invalid JSON

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

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

返回错误:

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

JSON是有效的,那又是什么呢?


答案与命令行中JSON字符串的格式有关。尽管键入JSON是正确的,但命令行似乎必须在发送前重新格式化它。(也许其他人可以更详细地解释为什么会这样做。)要解决这个问题,您需要像这样避开命令行中的引用:

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

看到额外的引号了吗?这应该有效,并返回带有ID和修订号的"OK:true"。


您还必须引用整个语句来支持以下空格:d""title":"没有什么可以丢失","artist":"foo fighters""