14 EYLÜL 2010, Salı
Nasıl kullanarak/Catch olmadan bir dize geçerli bir JSON dize olup olmadığını kontrol etmek için JavaScript
Gibi bir şey
var jsonString = '{ "Id": 1, "Name": "Coke" }';
//should be true
IsJsonString(jsonString);
//should be false
IsJsonString("foo");
IsJsonString("<div>foo</div>")
EDİT: Çözüm/try içermemelidir. Bazılarımız "tüm kesme hataları" ve hata ayıklayıcı, bu geçersiz Json dizeler. kırma sevmezler açın
CEVAP
5 Aralık 2013, PERŞEMBE
3 yıl geç ben bu soruyu biliyorum, ama kafiye gibi hissettim.
Gumbo çözümü iyi çalışıyor olsa da, istisna JSON.parse({something that isn't JSON})
ortaya çıkar, birkaç durum değil
Ben de aynı zamanda ayrıştırılmış JSON dönmek için tercih, arama kodu JSON.parse(jsonString)
ikinci kez aramak zorunda kalmaz.
Bu benim ihtiyaçları için çalışmak gibi görünüyor:
function tryParseJSON (jsonString){
try {
var o = JSON.parse(jsonString);
// Handle non-exception-throwing cases:
// Neither JSON.parse(false) or JSON.parse(1234) throw errors, hence the type-checking,
// but... JSON.parse(null) returns 'null', and typeof null === "object",
// so we must check for that, too.
if (o && typeof o === "object" && o !== null) {
return o;
}
}
catch (e) { }
return false;
};
Bunu Paylaş:
Eğer bir dize geçerli bir sayı olup ol...
Nasıl bir dize olup olmadığını kontrol...
Eğer bir dize geçerli bir adres olup o...
Eğer bir dize PHP JSON olup olmadığını...
Nasıl Python ile bir dize ASCII olup o...