SORU
2 NİSAN 2009, PERŞEMBE


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
7 Temmuz 2011, PERŞEMBE


İş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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bokeh

    Bokeh

    9 HAZİRAN 2014
  • magnum33563

    magnum33563

    8 NİSAN 2011
  • Tina Chen

    Tina Chen

    26 Mayıs 2012