2012-06-13 16 views
5

İşte benim istemci tarafı jQuery kod:jQuery JSON ayrıştırmak için görünmüyor otomatik

İşte
$.ajaxSetup ({ 
    contentType: "application/json", 
    datatype: 'json' 
}); 

$.ajax({ 
    type: "POST", 
    url: "http://localhost:1234/path", 
    data: JSON.stringify(myData), 
    success: function(aString){ 
     alert(aString); 
    }, 
    error: function(errorData){ 
     alert(errorData); 
    } 
}); 

sunucu gönderir veridir: uyarısında

200 
Content-Type: application/json 

"aStringsData" 

arasında tırnak " aStringData "görüntülenir. Ancak, ben detaype: 'json' dan olmasını beklediğim otomatik JSON.parse nedeniyle tırnakların alınmasını beklerdim. Bu konuda yanlış mıyım?

+2

JavaScript harfe duyarlıdır. 'dataType! == veri türü '. – Matt

+0

Çok teşekkürler, muhtemelen bir süre sessizce anlamayacaktım .. – hansi

cevap

5

Bu parametre aslında dataType, değil datatype (JavaScript büyük/küçük harfe duyarlı).

Sen ile deneyebilirsiniz:

içinde
dataType: 'json' // not datatype 

senin ajaxSetup;

+0

@Matt Teşekkürler – thecodeparadox

+0

Teşekkürler, sorunu çözdü! – hansi

+0

@hansi Hoşgeldiniz, – thecodeparadox

0

Yanıtınız: JSON, bir { doğru başlamak gerekiyordu olarak

"aStringsData" 

, inanıyorum JSON geçerli değil ?.

Sen

{ 
"string": "data" 
} 
+0

numaralı telefon numarasından hatalıdır. Tek başına bir dize * mükemmel * geçerli JSON. http://json.org – Matt

+0

Peki, ya bir nesne, ya da bir şeyler (bir dizi gibi) bir liste olabilir, ama kendi başına bir dize olabilir değil mi? (Tabii ki yanılıyor olabilirim, ama aynı ilk denemeyi denedim ilk 3 doğrulayıcı) – Nanne

+0

@matt: Bağlantıda bulunduğunuz json sayfasının 2 bolesi noktası var: bir nesne veya liste olduğunu söylüyorlar. Orada _is_ daha sonra bir "value" tanımı var, elbette, ama okuduğum kadarıyla tek başına değerin geçerli JSON olduğunu söylemiyor. – Nanne

-1

böyle bir şey kullanmayı deneyebilirsiniz anlamına gelebilir:

eval(aString) 
+0

Bu, soruyu cevaplamak için * * kapatmıyor. Soru şu soruyor: * JSON neden otomatik olarak ayrıştırılmıyor, nasıl yapılacağı değil. – Matt

İlgili konular