有关couchDB视图的"无效JSON"错误,但json很好

Chr*_*ver 10 javascript couchdb views

我试图在CouchDB上设置以下视图

{
"_id":"_design/id",
"_rev":"1-9be2e55e05ac368da3047841f301203d",
"language":"javascript",
    "views":{ "by_id":{
              "map" : "function(doc) { emit(doc.id, doc)}"
        },"from_user_id":{
            "map" : "function(doc) { if (doc.from_user_id) {emit(doc.from_user_id, doc)}}"},
        "from_user":{
            "map" : "function(doc) { if (doc.from_user) {emit(doc.from_user, doc)}}"},
        "to_user_id":{
            "map" : "function(doc) {if (doc.to_user_id){ emit(doc.to_user_id, doc)}}"},
        "to_user":{
            "map" : "function(doc) {if (doc.to_user){ emit(doc.to_user, doc)}}" },
        "max_id":{
         "map" : "function(doc) { if (doc.id) {emit(doc._id, eval(doc.id))}}",  
         "reduce" :"function(key,value) { a = value[0]; for (i=1; i <value.length; ++i){a =    Math.max(a,value[i])} return a}"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试使用curl'PUT'时:

 curl -X PUT -d keys.json  $CDB/_design/id
 {"error":"bad_request","reason":"invalid UTF-8 JSON"}
Run Code Online (Sandbox Code Playgroud)

我知道它不是无效的JSON,因为我使用Python 2.6内置的'json'库测试它,它加载得很好.JS螺丝钉给我错误'必须评估功能'

我用od检查了文件,没有隐藏的控件字符,我的系统设置为UTF-8.我正在使用CouchDB版本0.10.1

还有什么可能是错的?

Joa*_*uer 19

@titanoba暗示了这个问题:

-dcurl选项期望实际数据作为参数!

如果要在文件中提供数据,则需要在其前面加上@:

curl -X PUT -d @keys.json  $CDB/_design/id
Run Code Online (Sandbox Code Playgroud)