使用key,startkey时,CouchDB视图抛出了无效的UTF-8 JSON错误

时间:2011-03-17 16:35:41

标签: json curl couchdb

我在CouchDB中定义了一个非常基本的视图:

function(doc) {
  if(doc.date && doc.erc) {
    emit(doc.date, doc.erc);
  }
}

它只是按日期提取所有文件和排序。

我试过追加

?startkey="2010-05-01"

到URL和Futon只是浏览器重定向。

我也尝试过使用CURL:

curl -X GET http://localhost:5984/plots/_design/by_date/_view/by_date?startkey="2010-05-01"

抛出错误:

{"error":"bad_request","reason":"invalid UTF-8 JSON"}

我做错了什么?这应该是一件非常基本的事情。

谢谢, -Jim

4 个答案:

答案 0 :(得分:26)

CouchDB需要看双引号。

curl运行之前,Bash可能正在吃双引号。将URL(双引号和全部)放在单引号中。

curl -X GET 'http://localhost:5984/plots/_design/by_date/_view/by_date?startkey="2010-05-01"'

这样,Bash会将引号发送到curl,然后将它们发送到CouchDB。

可能Firefox或者还在吃你的报价。被褥的右上方有一个灰色指针图标。这链接到视图的原始URL。尝试在那里添加startkey。您也可以输入双引号%22

答案 1 :(得分:4)

我不知道你是否已经得到了解决方案..无论如何,像我这样的观众有同样的错误。这是解决方案。我在windows中试过

curl -X GET http://localhost:5984/plots/_design/by_date/_view/by_date?startkey=\"2010-05-01\"

答案 2 :(得分:2)

curl xxx:xxxm@aaaa:5984/kitsi_arin/_design/arinDesign/_view/TestView2?key=\"Arindam\"

这对我在cygwin中起作用

答案 3 :(得分:0)

您也可以使用 URL %codes,大多数提取程序将 %22 转换为双引号 "

curl -X GET http://localhost:5984/plots/_design/by_date/_view/by_date?startkey=%222010-05-01%22