Couchbase 视图结果中的”json 文本中的无效字符”错误

"invalid char in json text" error in Couchbase view results

这是我存储在存储桶中的文档。Id(key) 属性也是 screenName。

1
2
3
4
5
6
7
8
9
10
11
{
      "created": null,
      "createdBy": null,
      "updated": null,
      "updatedBy": null,
      "screenName":"steelers",
      "appId":"100",
      "domain":"100$APPINFOTEAM",
      "alias":"steelers",
      "devision":"1"
   }

我在 Couchbase 中有多个这种格式的文档。所以我需要按降序获取这些文件。所以这是我使用它的实现,

1
2
3
4
5
6
7
        Query query = new Query();
        // Filter on the domain key
        query.setIncludeDocs(true);
        query.setDescending(true);
        query.setInclusiveEnd(true);
        query.setKey(domain);
        List<AppInfoTeam> appInfoTeam = appinfoTeamService.getAppInfoTeamForApp(query);

这将给我准确的文档,无需排序。这是我的看法

1
2
3
4
5
function (doc, meta) {
if (doc._class =="com.link.twitter.pojo.AppInfoTeam") {
    emit(doc.domain, null);
  }
}

我还尝试使用 Couchbase 服务器界面过滤结果。我勾选了descending 和inclusive_end 值。也将域作为键。然后,当我单击显示结果按钮时,它会给我这个错误。

1
url: ?stale=false&descending=true&inclusive_end=true&key=domain&connection_timeout=60000&limit=10&skip=0

错误:

1
2
3
{"error":"bad_request","reason":"invalid UTF-8 JSON: {{error,{1,"lexical error: invalid char in json text.\\\
"}},\
                     "domain"}"}

我该如何解决这个问题?


您需要用双引号将密钥括起来:

1
<url>?stale=false&descending=true&inclusive_end=true&key="domain"&connection_timeout=60000&limit=10&skip=0