2013-09-30 2 views
0

Извините за вопрос noob.Как проверить наличие ответа и его поднабора в JSON?

У меня есть ответ JSON, который иногда возвращает разные ответы, и мне нужно проверить содержимое подзаголовка одного типа возможных ответов. Прямо сейчас у меня есть вложенное условие, есть ли способ упростить это?

if("FooResponse" in rsp){ 
    if(rsp.FooResponse.code === 0){ 
    // do something; 
    } 
} 

Интересно, есть ли способ, чтобы одновременно проверить наличие узла и его подузел без необходимости делать проверку условий два уровня?

+2

См [Логические операторы в JavaScript] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators) – Boaz

ответ

2

Вы можете сделать

if(rsp.FooResponse && rsp.FooResponse.code === 0){ 
+0

действительно? Если 'rsp.FooResponse' не определено, не будет ли' .code' выдавать ошибку? – Blaise

+0

Правильно, поэтому в первую очередь требуется проверка уровня. –

+1

@Blaise Нет, это не приведет к ошибке: второй тест выполняется только в том случае, если первый проходит. –

0

Вы можете просто сделать, используя

if(!!rsp.FooResponse && !!rsp.FooResponse.code && rsp.FooResponse.code === 0) 
Смежные вопросы