2013-07-05 16 views
12

Ben bir acemi ben JSON belgesine, bu benim kodum bu yüzden bu hatayı çözmek için bana yardımcı olun.JSON.parse: dize değişmezinde hatalı denetim karakteri, bu kodda

{ 
    "_id" : "_design/utilisateur", 
    "_rev" : "1-967a00dff5e02add41819138abb3284d", 
    "views" : { 
    "tous" : { 
     "map" : "function(doc){if (doc.role=='utilisateur') {emit (doc._id,  [['t0',doc.distancet0],['t1',doc.distancet1],['t2',doc.distancet2],['t3',doc.distancet3], ['t4',doc.distancet4]])}}" 
     }, 

    "3500" : { 
     "map" : "function(doc) {if (doc.role=='utilisateur' &&  doc.distancet0<3500) {emit(doc._id,doc.distancet0)}}" 
     }, 

     "distancetot" : { 
       "map" : "function(doc) {var somme= Math.abs(doc.distancet0- doc.distancet1); if(doc.role=='utilisateur'){ 
    emit(doc._id, somme); 
}}" 
          }  
}   

} 
+3

JSON'unuzu geçerli hale getirmeniz gerektiği gibi görünüyor. Hata mesajını anlamıyor musun? Hata, nerede olduğunu bile söylemelidir. Bununla ilgili herhangi bir yardım isterseniz, JSON belgenizi bize gösterin. – Bergi

+2

Bize kodunuzu göster? –

+0

Yazdığınız kodla ilgili sorularınız ** belirli bir sorunu ** belirtmeli ve bunları çoğaltmak için geçerli bir kod içermelidir. Rehberlik için bkz. [SSCCE.org] (http://sscce.org/). –

cevap

32

hata iletisi, örneğin, bir dizgi içerisindeki bir kontrol karakteri olduğunu anlatıyor, karakter kodu 8 veya 10 veya 13 veya 32 altında herhangi bir şey (bir boşluk).

The JSON definition

dize değişmezlerinde literal kontrol karakterleri olamaz söyler, bir kaçış dizisi kullanmak gerekir XXXX Unicode "kod noktası" için onaltılık kodudur gibi \b, \r, \n veya \uXXXX (karakter) .

Yani örneğin, bir dosyada (veya diğer veri akışı) Aşağıdaki taklit:

geçersiz JSON, "value ile başlayan değişmez dize var
{ 
    "property": "value with an invalid 
control character in it" 
} 

içinde en az bir kontrol karakteri (hattı vardır mola, OS'ye bağlı olarak bir veya iki kontrol karakteri olabilir).

Bu

bunu düzeltmek görecektir:

{ 
    "property": "value with an valid\nescape sequence in it" 
} 

Not satır sonu eskiden \n.

JSON'u doğrulamak için http://jsonlint.com'u kullanabilirsiniz, hatanın nerede olduğunu belirtmek oldukça iyidir. Düzenlemenizle Re


: Bu soruna neden bir satır sonu gerçekten de:

"distancetot": { 
    "map": "function(doc) {var somme= Math.abs(doc.distancet0- doc.distancet1); if(doc.role=='utilisateur'){ 
Error is here -------------------------------------------------------------------------------------------------^ 

if(doc.role=='utilisateur'){ sonra satır sonu hemen üstünde benim örnekte olduğu gibi, geçersiz bir denetim karakteridir.

+0

faydalı olduğunu biliyoruz, şu anda geçerli – user2553396

+0

, çok cömertsiniz – user2553396