Returns a string containing the JSON representation of the argument.
The argument may be any of the following types:
- arrays, associative and traditional
- DomainObjects
- arrays containing DomainObjects
- ObjectStorage containing DomainObjects
- standard types (string, integer, boolean, float, NULL)
- DateTime including ones found as property values on DomainObjects
Recursion protection is enabled for DomainObjects with the option to
add a special marker (any variable type above also supported here)
which is inserted where an object which would cause recursion would
be placed.
Be specially careful when you JSON encode DomainObjects which have
recursive relations to itself using either 1:n or m:n - in this case
the one member of the converted relation will be whichever value you
specified as "recursionMarker" - or the default value, NULL. When
using the output of such conversion in JavaScript please make sure you
check the type before assuming that every member of a converted 1:n
or m:n recursive relation is in fact a JavaScript. Not doing so may
result in fatal JavaScript errors in the client browser.
recursiveArrayOfDomainObjectsToArray()
защищенный Метод
Convert an array of possible DomainObject instances. The argument
$possibleDomainObjects could also an associative array representation
of another DomainObject - which means each value could potentially
be another DomainObject, an ObjectStorage of DomainObjects or a simple
value type. The type is checked and another recursive call is used to
convert any nested objects.
recursiveDomainObjectToArray()
защищенный Метод
Convert a single DomainObject instance first to an array, then pass
that array through recursive DomainObject detection. This will convert
any 1:1, 1:n, n:1 and m:n relations.