16.3. JSON Objecten

Wanneer je PHP objecten als JSON encodeerd zullen alle publieke eigenschappen van dat object naar JSON objecten worden gecodeerd.

Het decoderen van JSON objecten houdt weliswaar een klein probleempje in, omdat Javascript objecten heel dicht tegen PHP associatieve arrays aanleunen. Sommigen suggereren dat een klasse identificator doorgegeven zou moeten worden, en een object instantie van die klasse zou moeten worden gebouwd en bevolkt met de key/waarde-paren van het JSON object; anderen denken dat dit een potentieel groot veiligheidsrisico inhoudt.

Zend_Json zal JSON objecten standaard als associatieve arrays decoderen. Als je liever een object terugkrijgt, kan je dit zo opvragen:

<?php
// Decodeer objecten als objecten
$phpNative = Zend_Json::decode($encodedValue, Zend_Json::TYPE_OBJECT);
?>

Alle zo gedecodeerde objecten worden teruggestuurd als StdClass objecten met eigenschappen die overeenkomen met de key/waarde-paren in de JSON notatie.

De aanbeveling van het Zend Framework is dat de ontwikkelaar individueel zou moeten beslissen hoe hij JSON objecten gedecodeerd wil hebben. Indien een object van een bepaald type zou moeten worden gemaakt, kan dat worden gemaakt in de code van de ontwikkelaar en bevolkt worden met de waarden die Zend_Json heeft gedecodeerd.