2016-06-01 4 views
0

У меня есть вызов API, который возвращает объект, я хотел бы проверить, возвращает ли какое-либо из значений значение null.Loop over JSON api

структура ответа API выглядит следующим образом:

{ 
    "expirationDate": "August 31, 2016", 
    "remainingDays": 127, 
    "pid": "null", 
    "seats": [{ 
     "activeStatus": "Y", 
     "pid": "TE80", 
     "firstName": "Lenovo X230 Beta SN", 
     "guid": "0CA6A94E378F464E9A5EC09102779CFC" 
    }] 
} 

Спасибо заранее.

+0

является результатом строка или она анализируется (= объект)? какой объект из объекта? какое свойство проверить? –

+0

Я просто хочу, чтобы цикл к каждому из объектов, чтобы проверить, если некоторые объекты возвращают null, то, если это null, я покажу модальный, который у меня уже есть. –

+0

Вам нужен «pid» из «pid»: «null», '? Я имею в виду, нужны ли ключи свойств, где значение «null»?? – vaso123

ответ

2

Вам просто нужно перебирать ключи объектов и проверять их значения.

Лучший способ, если вы поместите этот цикл в функцию, а затем, если объект появится, вы можете использовать рекурсию.

var json = { 
    "expirationDate": "August 31, 2016", 
    "remainingDays": 127, 
    "pid": "null", 
    "seats": [{ 
      "activeStatus": "Y", 
      "pid": "TE80", 
      "firstName": "Lenovo X230 Beta SN", 
      "guid": "0CA6A94E378F464E9A5EC09102779CFC" 
     }] 
}; 

for (prop in json) { 
    if (typeof json[prop] === 'object') { 
     //do a recursion here 
    } else { 
     if (json[prop] === 'null') { 
      //do what you want with null 
      console.log("It is null"); 
     } 
    } 
} 
1

Вы можете перебрать все свойства и, если значение является массивом, то по всем элементам массива и проверить, если один значение свойства null или 'null'.

function hasNull(o) { 
 
    return Object.keys(o).some(function (k) { 
 
     return Array.isArray(o[k]) && o[k].some(hasNull) || o[k] === null || o[k] === 'null'; 
 
    }); 
 
} 
 

 
var data = { "expirationDate": "August 31, 2016", "remainingDays": 127, "pid": "null", "seats": [{ "activeStatus": "Y", "pid": "TE80", "firstName": "Lenovo X230 Beta SN", "guid": "0CA6A94E378F464E9A5EC09102779CFC" }] }, 
 
    hasNullValue = hasNull(data); 
 

 
console.log(hasNullValue);

+0

Спасибо, Нина, это большая помощь для меня. –