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)
1
2
3
4
5
6
7
8
9
10
11
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;
?>
// 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)
1
2
3
4
5
6
7
8
9
10
11
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'];
?>
// 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)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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 />';
}
?>
// 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.
« vorige pagina | volgende pagina »