web-dev-qa-db-fra.com

Comment décoder un objet Json dans laravel et appliquer une boucle foreach sur celui-ci dans laravel

je reçois cette demande.

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

et je veux fournir une réponse à cela en recherchant des enregistrements dans la base de données sur la base de la demande ci-dessus. comment vais-je décoder au-dessus du tableau json et utiliser chaque champ de zone séparément.

15
Parag Bhingre

votre chaîne n'est PAS un json valide pour commencer.

un json valide sera,

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

si vous faites un json_decode, il donnera,

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

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

        )

)

Mise à jour: à utiliser

$string = '

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

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

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

Sortie:

kothrud
katraj

Mise à jour # 2:

pour cela true:

Lorsque VRAI, les objets retournés seront convertis en tableaux associatifs. pour plus d'informations, cliquez ici

26
itachi

vous pouvez utiliser json_decode une fonction

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

Voir ceci violon

6
Kamran