Tôi cố gắng để thiết lập các điểm sau trên CouchDBLỗi về 'không hợp lệ JSON' với CouchDB xem nhưng của json tốt
{
"_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}"
}
}
}
khi tôi cố gắng 'PUT' này sử dụng curl:
curl -X PUT -d keys.json $CDB/_design/id
{"error":"bad_request","reason":"invalid UTF-8 JSON"}
Tôi biết nó không phải là JSON không hợp lệ, bởi vì tôi đã thử nghiệm nó bằng cách sử dụng thư viện 'json' được xây dựng trong Python 2.6, nó tải tốt. JS vít ups cung cấp cho tôi lỗi 'phải đánh giá một chức năng'
Tôi đã kiểm tra tệp với od, không có ký tự điều khiển ẩn, hệ thống của tôi được đặt thành UTF-8. Tôi đang sử dụng phiên bản CouchDB 0.10.1
Điều gì khác có thể xảy ra với nó?
Có thể là keys.json được mã hóa bằng mã hóa 16 bit như UTF-16 hoặc UCS-2 không? –
Là một FYI, JSON của bạn phân tích tốt trong Chrome, Internet Explorer và Firefox. –
@Joachim_Sauer tệp keys.json, hiển thị nó dưới dạng 'văn bản ascii', Nếu được chọn với 'od -c' không có ký tự kiểm soát kinh dị, hệ thống của tôi mặc định là utf-8, tôi bị bối rối –