CouchDB设计文档的JSON解析错误:缩进空格导致字符串未关闭?

CouchDB设计文档的JSON解析错误:缩进空格导致字符串未关闭?,json,parsing,couchdb,Json,Parsing,Couchdb,我使用以下CouchDB设计文档进行测试。我使用回车符\n和制表符\t缩进Javascript代码。就我对JSON的理解而言,我认为这些地方的空格是可以的。但是Ruby couchrest无法解析它和JSLint。在解析设计文档之前,我必须从中删除\n和\t。为什么呢 JSON.org上的JSON简介页面提到“可以在任何一对令牌之间插入空格。” 在这里呈现选项卡有点困难,因此我包含了一个带有\n和\t的解析字符串 { "_id": "_design/test", "views": { "

我使用以下CouchDB设计文档进行测试。我使用回车符\n和制表符\t缩进Javascript代码。就我对JSON的理解而言,我认为这些地方的空格是可以的。但是Ruby couchrest无法解析它和JSLint。在解析设计文档之前,我必须从中删除\n和\t。为什么呢

JSON.org上的JSON简介页面提到“可以在任何一对令牌之间插入空格。”

在这里呈现选项卡有点困难,因此我包含了一个带有\n和\t的解析字符串

{
"_id": "_design/test",
"views": {
    "all": {
        "map": "function(doc) {
            if (doc.nom) emit(doc._id, doc);
            }"
        },
    "asin_doc": {
        "map": "function(doc) {
            if (doc.category) emit(doc.asin, doc);
            }"
        },
    "asin": {
        "map": "function(doc) {
            if (doc.category) emit(doc.asin, null);
            }"
        }
    }
    }
长字符串中的同一文档(Ruby):

JSLint告诉我第5行字符20有一个问题

Problem at line 5 character 20: Unclosed string.
"map": "function(doc) {
Problem at line 5 character 20: Stopping. (25% scanned).
JSON: bad.

我看不出哪根绳子没有关好。有什么想法吗?

字符串中不允许使用换行符和制表符。具体见:

unescaped = %x20-21 / %x23-5B / %x5D-10FFFF
编辑:我想json.org所说的是:

允许在六个结构字符中的任何一个之前或之后使用不重要的空格

“结构字符”是:
[]{}:,

unescaped = %x20-21 / %x23-5B / %x5D-10FFFF