Próbuję skonfigurować następujący pogląd na CouchDBbłąd o 'nieprawidłowej JSON' z widokiem couchdb ale json w porządku
{
"_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}"
}
}
}
gdy próbuję 'wprowadzony' to za pomocą curl:
curl -X PUT -d keys.json $CDB/_design/id
{"error":"bad_request","reason":"invalid UTF-8 JSON"}
Wiem, że to nie jest nieprawidłowy JSON, ponieważ przetestowałem go przy użyciu biblioteki json wbudowanej w Pythonie 2.6, ładuje się dobrze. Wkręty JS dają mi błąd "musi ocenić do funkcji"
Sprawdziłem plik z od, nie ma ukrytych znaków kontrolnych, mój system jest ustawiony na UTF-8. Używam wersji CouchDB 0.10.1
Co jeszcze może być nie tak z tym?
Czy jest możliwe, że keys.json jest zakodowany w 16-bitowym kodowaniu, takim jak UTF-16 lub UCS-2? –
Jako FYI, Twój JSON parsuje dobrze w Chrome, Internet Explorer i Firefox. –
@Joachim_Sauer plik keys.json, pokazuje go jako "tekst ascii", jeśli zaznaczony z "od -c" nie ma znaków kontrolnych horroru, mój system domyślnie przyjmuje utf-8, jestem zdziwiony –