SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BSA

    BSA

    9 NİSAN 2012
  • GFX Tutorials

    GFX Tutorial

    12 AĞUSTOS 2013
  • jbignacio

    jbignacio

    13 Mart 2006