Class for encoding to and decoding from JSON.

package Default

 Methods

Decodes the given $encodedValue string which is encoded in the JSON format

decode(string $encodedValue, integer $objectDecodeType = self::TYPE_OBJECT) : mixed
Static

Uses ext/json's json_decode if available.

Parameters

$encodedValue

string

Encoded in JSON format

$objectDecodeType

integer

Optional; flag indicating how to decode objects. See {@link Zend\Json\Decoder::decode()} for details.

Exceptions

\Zend\Json\Exception\RuntimeException

Returns

mixed

Encode the mixed $valueToEncode into the JSON format

encode(mixed $valueToEncode, boolean $cycleCheck = false, array $options = array()) : string
Static

Encodes using ext/json's json_encode() if available.

NOTE: Object should not contain cycles; the JSON format does not allow object reference.

NOTE: Only public variables will be encoded

NOTE: Encoding native javascript expressions are possible using Zend\Json\Expr. You can enable this by setting $options['enableJsonExprFinder'] = true

see

Parameters

$valueToEncode

mixed

$cycleCheck

boolean

Optional; whether or not to check for object recursion; off by default

$options

array

Additional options used during encoding

Returns

stringJSON encoded object

fromXml()

fromXml(string $xmlStringContents, boolean $ignoreXmlAttributes = true) : mixed
Static
deprecated by https://github.com/zendframework/zf2/pull/6778 fromXml - Converts XML to JSON Converts a XML formatted string into a JSON formatted string. The value returned will be a string in JSON format. The caller of this function needs to provide only the first parameter, which is an XML formatted String. The second parameter is optional, which lets the user to select if the XML attributes in the input XML string should be included or ignored in xml2json conversion. This function converts the XML formatted string into a PHP array by calling a recursive (protected static) function in this class. Then, it converts that PHP array into JSON by calling the "encode" static function. NOTE: Encoding native javascript expressions via Zend\Json\Expr is not possible.
static
access public

Parameters

$xmlStringContents

string

XML String to be converted

$ignoreXmlAttributes

boolean

Include or exclude XML attributes in the xml2json conversion process.

Exceptions

\Zend\Json\Exception\RuntimeException if the input not a XML formatted string

Returns

mixed- JSON formatted string on success

Pretty-print JSON string

prettyPrint(string $json, array $options = array()) : string
Static

Use 'indent' option to select indentation string - by default it's a tab

Parameters

$json

string

Original JSON string

$options

array

Encoding options

Returns

string

Return the value of an XML attribute text or the text between the XML tags

_getXmlValue(\SimpleXMLElement $simpleXmlElementObject) : \Zend\Json\Expr | string
Static

In order to allow Zend\Json\Expr from xml, we check if the node matches the pattern that try to detect if it is a new Zend\Json\Expr if it matches, we return a new Zend\Json\Expr instead of a text node

Parameters

$simpleXmlElementObject

\SimpleXMLElement

Returns

\Zend\Json\Exprstring

_processXml - Contains the logic for xml2json

_processXml(\SimpleXMLElement $simpleXmlElementObject, boolean $ignoreXmlAttributes, integer $recursionDepth = 0) : array
Static

The logic in this function is a recursive one.

The main caller of this function (i.e. fromXml) needs to provide only the first two parameters i.e. the SimpleXMLElement object and the flag for ignoring or not ignoring XML attributes. The third parameter will be used internally within this function during the recursive calls.

This function converts the SimpleXMLElement object into a PHP array by calling a recursive (protected static) function in this class. Once all the XML elements are stored in the PHP array, it is returned to the caller.

Parameters

$simpleXmlElementObject

\SimpleXMLElement

$ignoreXmlAttributes

boolean

$recursionDepth

integer

Exceptions

\Zend\Json\Exception\RecursionException if the XML tree is deeper than the allowed limit.

Returns

array

Check & Replace Zend\Json\Expr for tmp ids in the valueToEncode

_recursiveJsonExprFinder(mixed $value, array $javascriptExpressions, null|string|integer $currentKey = null) : mixed
Static

Check if the value is a Zend\Json\Expr, and if replace its value with a magic key and save the javascript expression in an array.

NOTE this method is recursive.

NOTE: This method is used internally by the encode method.

see

Parameters

$value

mixed

a string - object property to be encoded

$javascriptExpressions

array

$currentKey

nullstringinteger

Returns

mixed

 Properties

 

To check the allowed nesting depth of the XML tree during xml2json conversion.

$maxRecursionDepthAllowed : integer

Default

25
Static
 

$useBuiltinEncoderDecoder

$useBuiltinEncoderDecoder : boolean

Default

false
Static

 Constants

 

How objects should be encoded -- arrays or as stdClass. TYPE_ARRAY is 1 so that it is a boolean true value, allowing it to be used with ext/json's functions.

TYPE_ARRAY = 1 
 

TYPE_OBJECT

TYPE_OBJECT = 0