Try/Catch kullanmadan JavaScript'te bir dizenin geçerli bir JSON dizesi olup olmadığını kontrol etme
Şöyle bir şey:
var jsonString = '{ "Id": 1, "Name": "Coke" }';
//should be true
IsJsonString(jsonString);
//should be false
IsJsonString("foo");
IsJsonString("<div>foo</div>")
Çözüm try/catch içermemelidir. Bazılarımız "break on all errors" özelliğini açıyor ve bu geçersiz JSON dizelerinde hata ayıklayıcının kırılmasından hoşlanmıyorlar.
489
3
JSON.parse` gibi bir JSON ayrıştırıcı kullanın:
prototypeJS'de isJSON metoduna sahibiz. Bunu deneyebilirsiniz. Hatta json bile yardımcı olabilir.
Geçerli olup olmadığını doğrulamak için javascript eval() işlevini kullanabilirsiniz.
Örneğin.
Alternatif olarak, json.org adresindeki
JSON.parse
fonksiyonunu kullanabilirsiniz:Umarım bu yardımcı olur.
UYARI: Birisi kötü amaçlı JS kodu eklerse
eval()
kodu çalıştırılacağından tehlikelidir. JSON Dizesinin güvenilir olduğundan, yani güvenilir bir kaynaktan aldığınızdan emin olun.Edit 1. çözümüm için bunu yapmanız önerilir.
Json-ness'ı garanti altına almak için. Eğer
jsonString
saf JSON değilse, eval bir istisna fırlatacaktır.