Как декодировать объект Json в laravel и применить цикл foreach к этому в laravel

Я получаю этот запрос.   

 { "area": [
        {
            "area": "kothrud"
        },
        {
            "area": "katraj"
        }
    ]
}

и я хочу предоставить ответ на это путем поиска записей в базе данных на основе вышеуказанного запроса. как я буду декодировать выше массива json и использовать каждое поле области отдельно.

2 ответов


ваша строка не является допустимым JSON для начала.

действительный json будет,

{
    "area": [
        {
            "area": "kothrud"
        },
        {
            "area": "katraj"
        }
    ]
}

если вы json_decode, он уступит,

stdClass Object
(
    [area] => Array
        (
            [0] => stdClass Object
                (
                    [area] => kothrud
                )

            [1] => stdClass Object
                (
                    [area] => katraj
                )

        )

)

обновление: использовать

$string = '

{
    "area": [
        {
            "area": "kothrud"
        },
        {
            "area": "katraj"
        }
    ]
}

';
            $area = json_decode($string, true);

            foreach($area['area'] as $i => $v)
            {
                echo $v['area'].'<br/>';
            }

выход:

kothrud
katraj

обновление #2:

для этого true:

если true, возвращаемые объекты будут преобразованы в ассоциативные массивы. за дополнительной информацией, нажмите здесь


можно использовать json_decode функции

foreach (json_decode($response) as $area)
{
 print_r($area); // this is your area from json response
}

посмотреть этот скрипка