这与题为“错误关于'无效JSON'与couchDB视图但json很好”的问题略有不同:我不想上传文件只输入一个简单的文档。
我试图使用的例子实际上来自O'Reilly的书“CouchDB:The Definitive Guide”,我很确定我之前已经尝试过并让它发挥作用。这是命令:
curl -X PUT http://username:password@127.0.0.1:5984/albums/6e1295ed6c29495e54cc05947f18c8af -d '{"title":"There is Nothing Left to Lose","artist":"Foo Fighters"}'
数据库相册存在且用户名和密码正确无误。我用JSONLint检查过这个并且JSON是有效的,我很茫然......可能是CouchDB服务器本身存在问题,但它看起来运行正常......任何想法?这让我疯了!
由于
答案 0 :(得分:23)
谢谢你们。原来这是引用转义的问题。以下是我在CouchDB用户邮件列表中从David那里得到的答案:
这是关于Windows的事情 引用 - 一个真正的PITA。不幸 Windows上的cmd.exe shell无法解析 这是正确的。什么时候的规则 用“”或“^”或“是”逃脱 有点模糊,但这有效:
C:\ tmp> curl -X PUT http://username:password@127.0.0.1:5984/albums/6e1295ed6c29495e54cc05947f18c8af -d“{\”title \“:\”没有什么可以失去\“,”艺术家“:\”Foo 战士\ “}” { “OK”:真, “ID”: “6e1295ed6c29495e54cc05947f18c8af”, “REV”: “1-4b39c2971c9ad54cb37e08fa02fec636”}
C:\ TMP>
“基本上你需要”逃脱“所有 在你的JSON中“引用”“
这解决了我的问题
答案 1 :(得分:0)
我也遇到了同样的问题,经过一段时间的搜索,我在其他问题上找到了Git Bash。 Git bash里面有curl命令。 git bash包含在Git安装程序中。
答案 2 :(得分:0)
你必须把escap字符 **放在一起,并且不要忘记将所有内容放在**"" 之后。 即:卷曲-X PUT http://127.0.0.1:5984/my_database/" 001" -d" {\"姓名":\" Suresh \",\"年龄\":\&#34 ; 32 \",\"指定\":\"员工经理\"} "