2016-04-15 17 views
-2

Hier ist der Code:Wie kann ich mit undefinierten JSON-Daten in JavaScript umgehen?

if (data.result.parameters.q === undefined) { 
    colsole.log('undefined') 
} 
//I also tried 
if (data.result.parameters.q === null) { 
    // colsole.log('undefined') 
// } 

Haben Sie versucht null und undefined aber keine Verwendung funktioniert.

+1

Erhalten Sie einen Fehler in der Konsole? Wenn eines der früheren Objekte in der Kette null ist, wird ein Fehler ausgelöst. Sonst könnte man 'console.log (data.result.parameters.q)' und auf alles spucken, was es ausspuckt – IrkenInvader

+1

'console.log (data.result.parameters.q)' ist wirklich undefiniert? –

+0

Was ist 'colsole'? –

Antwort

1

a === undefined nicht unbedingt auf undefined überprüfen, da Sie var undefined = {} setzen konnten.

Verwenden Sie entweder den void oder typeof Operator (strikte Gleichheit === ist nicht erforderlich):

if(data.result.parameters.q == void(0) || typeof data.result.parameters.q == 'undefined') 
    console.log('data.result.parameters.q is undefined'); 

Wie sieht Ihre Daten tatsächlich aussehen? Sind Sie sicher, dass data, data.result und data.result.parameters eingestellt sind? Es gibt viele Möglichkeiten, um zu überprüfen, wie hasOwnProperty oder allgemeine truthiness:

if(data.hasOwnProperty('result') && data.result && data.result.hasOwnProperty('parameters')) 
    // now we can check if there is q in data.result.parameters 

Beachten Sie auch, gibt es einen Rechtschreibfehler in Ihrem Code: es ist console, nicht colsole.

+0

up vote mit Hinweis, dass "undefined" in modernen Browsern schreibgeschützt ist. – Roberto

Verwandte Themen