Ich benutze das folgende Javascript. es schreibt gut, bis es zu einem Ergebnis kommt, das keinen Wert hat. im Konsolenprotokoll wird dies angezeigt

Nicht gefangener TypeError: Die Eigenschaft 'text' von null kann nicht gelesen werden

Aber mein Skript unten scheint nicht zu funktionieren

            var checkCaption = photo.caption.text;
            if (checkCaption == null) {
                caption = 'meh';
            } else {
                caption = photo.caption.text;
            }
7
ngplayground 7 Okt. 2012 im 20:02

3 Antworten

Beste Antwort

In Ihrem Beispiel ist photo.caption null, sodass Ihr Code beim Aufruf von photo.caption.text unterbrochen wird, bevor die Prüfung abgeschlossen ist.

var caption;

if(photo.caption != null) { // Covers 'undefined' as well
  caption = photo.caption.text;
} else {
  caption = "meh";
}
14
Renato Zannon 7 Okt. 2012 im 16:06

Für mich hat die Überprüfung der Länge des JSON-Objekts das Problem behoben -

   if Object.keys(jsonobj).length === 0){
     // JSON object is null
    }
   else {
     // JSON object has data 
    }
0
devman 16 Jän. 2020 im 13:32

In meinem Fall verwende ich JSON.stringify, um zu überprüfen, ob ich eine {} (null) Antwort vom REST-Server erhalten habe:

 if (JSON.stringify(response.data)=='{}') {
      //the response is null
 }
 else {
      //the response of JSON is not null
 }

Es funktioniert gut für mich zu überprüfen, ob die Antwort null ist oder nicht.

4
Ebrahim 5 Sept. 2015 im 01:31