JSON.parse () ve JSON.stringify (): Bazı tarayıcıların artık JSON çözme ve kodlama için yerli fonksiyonları kümesi sağlamak fazlalaştı. Onlar eval () işlevini kullanarak daha güvenli ve JSON veri iyi biçimli ise sadece eval ise () aşağıdaki gibi bir şeyleri değerlendirmek istiyorsunuz, çalışır:
{
'hello': (undefined
? 'world'
: ('number ' + Math.floor (40.235)))
}
Bu ne yanlış var? `'Undefined JavaScript değer json (sadece doğru, yanlış, boş, dizeleri ve sayılara izin verilir) mevcut değildir; Sadece çift tırnak JSON geçerli olduğunda tek tırnak her yerde kullanılır; JavaScript işlevleri çağırmak veya JSON dize birleştirme yapamazsınız.
Eğer şeyleri kurcalamak girişiminde bazı kötü niyetli JSON, bir form girişi gelen muhtemelen bir değer alabilir çünkü Açıkçası sonuncusu büyük bir sorundur. Yani mümkün olduğunda, JSON.parse () ve JSON.stringify () kullanın ... eval () tehlikeli çünkü.
Edit:
Ben orijinal yazı oynanırsa. PHP bir JSON nesnesi var ve JavaScript kullanmak istiyorsanız, bir dizeye JSON nesnesi dönüştürmek ve JavaScript üzerinde geçmek gerekir. Bunu yapmak için tek yolu JavaScript kodu aslında ilk etapta yeni oluşturulan json dize isteyin yapmak olacaktır. PHP bir dize dönecekti, JavaScript dize eval () veya JSON.parse () kullanmak istiyorsunuz, ve JavaScript içinde bir nesne olurdu. Content-Type başlığı, vb ayarlayarak, PHP dosyalarının içine JavaScript dosyaları yapmadan bunu yapmak için bir non-AJAX bir yolu varsa ben emin değilim, ama AJAX bu durumda çalışmaz olacağını biliyorum.