it-roy-ru.com

foreach для массива JSON, синтаксис

мой скрипт получает массив из PHP-скрипта на стороне сервера.

result = jQuery.parseJSON(result);

теперь я хочу проверить каждую переменную массива.

if (result.a!='') { something.... }
if (result.b!='') { something.... }
....

Есть ли лучший способ сделать это быстро, как в php 'foreach', 'while' или smth?

ОБНОВЛЕНИЕ

Этот код (благодаря hvgotcodes) дает мне значения переменных внутри массива, но как я могу также получить имена переменных?

for(var k in result) {
   alert(result[k]);
}

ОБНОВЛЕНИЕ 2

Вот как работает PHP сторона

$json = json_encode(array("a" => "test", "b" => "test",  "c" => "test", "d" => "test"));
43
David

Вы можете сделать что-то вроде

for(var k in result) {
   console.log(k, result[k]);
}

который перебирает все ключи в возвращенном json и печатает значения. Однако, если у вас есть вложенная структура, вам нужно будет использовать

typeof result[k] === "object"

чтобы определить, нужно ли зацикливаться на вложенных объектах. Большинство API, которые я использовал, разработчики знают структуру того, что возвращается, так что в этом нет необходимости. Тем не менее, я полагаю, что это ожидание не подходит для всех случаев.

88
hvgotcodes

Попробуй это:

$.each(result,function(index, value){
    console.log('My array has at position ' + index + ', this value: ' + value);
});
30
Floyd Pink

Конечно, вы можете использовать foreach JS.

for (var k in result) {
  something(result[k])
}
10
Tamzin Blake

Вы можете использовать метод JavaScript .forEach () для цикла JSON.

var datesBooking = [
    {"date": "04\/24\/2018"},
      {"date": "04\/25\/2018"}
    ];
    
    datesBooking.forEach(function(data, index) {
      console.log(data);
    });

0
yogihosting