JSON.() stringify Prototype.js dizi ile tuhaflığını
Yanlış json seri hale getirilirken benim ile gitti, app ve benim eski bir güncel sürüm var ve bazı şaşırtıcı farklılıkların JSON bulmak ne olduğumu anlamaya çalışıyorum.() stringify (json.org gelen JSON Kütüphanesi Kullanarak) çalışır.
App benim eski sürümünde
JSON.stringify({"a":[1,2]})
bana bu verir;
"{\"a\":[1,2]}"
yeni sürümde
JSON.stringify({"a":[1,2]})
bana bu verir;
"{\"a\":\"[1, 2]\"}"
herhangi bir fikir aynı kitaplığı dizisi parantez, tırnak koy yeni sürümünü sağlamak için ne değişti ki?
CEVAP
İşlev JSON.nesneler üzerinde kullanılabilir. () stringify ECMAScript 5 and above (Page 201 - the JSON Object, pseudo-code Page 205) işlev toJSON kullanır tanımlı()
Prototype.js (ya da kullandığınız başka bir kütüphane) bir Dizi tanımlar.prototip.() işlevi toJSON, diziler ilk dizeleri Dizi kullanarak dönüştürülür.prototip.() toJSON sonra Dize JSON tarafından aktarılan() stringify, dolayısıyla yanlış fazladan tırnak diziler.
Çözüm bu nedenle düz ileri ve önemsiz (bu Raphael Schweikert cevabı basit bir versiyonu)
delete Array.prototype.toJSON
Bu tabii ki bir toJSON kullanan kütüphaneler üzerinde yan etkilere neden olmuştur() fonksiyonu diziler için özellik. Ama bu çok kötü bir durum uyumsuzluğu dikkate ECMA 5 ile buluyorum.
JSON Nesne ECMA 5'te tanımlanan verimli modern tarayıcılarda uygulanan belirtmek gerekir ve bu nedenle en iyi çözüm standartlarına uygundur ve mevcut kütüphaneleri değiştirmek için.
Normal Java Diziye Json Dizi dönüştürm...
JSON arasındaki fark.stringify ve JSON...
JavaScript dizi JSON için ilişkilendir...
Nasıl JSON dizeleri bir dizi temsil ed...
/ İşlem () iç içe erişim nesneleri, Di...