JSON parsen

Nu gaat het echte werk beginnen. We gaan JSON parsen met PHP. Om JSON later goed te kunnen bekijken raad ik Postman - REST client of JSONView aan (beiden voor Google Chrome).

In PHP kan je json_decode gebruiken om JSON te parsen. Eerst een simpel voorbeeld:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
// we maken eerst een variabele met een JSON object erin
$json = '{"name":"Koen"}';
// dan parsen (decoden) we deze
$decoded = json_decode($json);
// om te bekijken wat er in deze variable zit kan je de volgende regel uncommenten
// var_dump($decoded);

// we echo'en nu de naam die in de variable zit

echo 'De naam is ', $decoded->name;
?>

Als je al een beetje verstand hebt van OOP kan je zien dat de JSON data in een object zit (van het standaardtype stdClass). Dit betekent dus dat alle properties te benaderen zijn met de object operator (->). Wil je niet met de object operator werken? Zet dan de tweede parameter van json_decode op true:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
// we maken eerst een variabele met een JSON object erin
$json = '{"name":"Koen"}';
// dan parsen (decoden) we deze
$decoded = json_decode($json, true);
// om te bekijken wat er in deze variable zit kan je de volgende regel uncommenten
// var_dump($decoded);

// we echo'en nu de naam die in de variable zit, maar nu d.m.v. een array

echo 'De naam is ', $decoded['name'];
?>


Ik zal nog een voorbeeld laten zien, maar dan met arrays.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
// we maken eerst een variabele met een JSON array erin
$json = '["Koen","Bas","Wouter","Ger"]';
// dan parsen (decoden) we deze
$decoded = json_decode($json);
// om te bekijken wat er in deze variable zit kan je de volgende regel uncommenten
// var_dump($decoded);

// je kan de values nu benaderen met de normale array accessor, bijvoorbeeld $decoded[0]

// echo alle namen

foreach ($decoded as $name) {
    echo 'Een naam is ', $name, '<br />';
}

?>

Je kan zien dat je met gedecode JSON arrays alles kan doen wat je met normale arrays kan doen, omdat het een normale array is.

« Lees de omschrijving en reacties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.