【问题标题】:CouchDB view throwing invalid UTF-8 JSON error when using key, startkeyCouchDB 视图在使用 key、startkey 时抛出无效的 UTF-8 JSON 错误
【发布时间】:2011-03-17 16:35:41
【问题描述】:

我在 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"}

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

谢谢, -吉姆

【问题讨论】:

    标签: json curl couchdb


    【解决方案1】:

    CouchDB 需要查看双引号。

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

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

    这样,Bash 会将引用发送到 curl,然后再发送到 CouchDB。

    可能 Firefox 或 Futon 也在吃掉你的报价。蒲团的右上角有一个灰色的指针图标。链接到视图的原始 URL。尝试在那里添加startkey。您也可以将双引号输入为%22。

    【讨论】:

    • 是的!这适用于 CURL。知道为什么在使用 Firefox/Futon 时将其附加到 URL 似乎会出错吗?
    • 更新了关于 Firefox 的想法
    • ... Bash is probably eating your double quotes before curl runs ... 在我的情况下是正确的。在我的终端命令行上,curl 命令不起作用。然后我在双引号之前使用了反斜杠,问题就解决了。我还需要在& 字符之前使用反斜杠。像这样:?startkey=\"ב\"\&endkey=\"ש\"
    • HOURS 类似的问题。在形成 URL 以向我的更新处理程序发出请求时,键必须用引号括起来,而不是值。 2.2.0 版。方法:'PUT'。网址:'testdata/_design/testDesigns/_update/setKeyValue/DOCID?key="hairColor"&value=purple'。如果我在值周围加上引号,它们会在数据库中作为转义引号保留。
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:
      curl xxx:xxxm@aaaa:5984/kitsi_arin/_design/arinDesign/_view/TestView2?key=\"Arindam\"
      

      这在 cygwin 中对我有用

      【讨论】:

        【解决方案4】:

        您还可以使用 URL %codes,%22 被大多数 fetch 程序转换为双引号 "

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-03-21
          • 2015-12-06
          • 1970-01-01
          • 2018-12-26
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多