format.json.encode ViewHelper <vhs:format.json.encode>
¶
JSON Encoding ViewHelper¶
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.
Arguments¶
value¶
- DataType
mixed
- Required
false
- Description
Value to encode as JSON
useTraversableKeys¶
- DataType
boolean
- Required
false
- Description
If TRUE, preserves keys from Traversables converted to arrays. Not recommended for ObjectStorages!
preventRecursion¶
- DataType
boolean
- Default
true
- Required
false
- Description
If FALSE, allows recursion to occur which could potentially be fatal to the output unless managed
recursionMarker¶
- DataType
mixed
- Required
false
- Description
String or null - inserted instead of recursive instances of objects
dateTimeFormat¶
- DataType
string
- Required
false
- Description
A date() format for DateTime values to JSON-compatible values. NULL means JS UNIXTIME (time()*1000)
pretty¶
- DataType
boolean
- Required
false
- Description
If TRUE, outputs JSON with JSON_PRETTY_PRINT