Skip to content

Json ​

Type
Class
Namespace
craft\helpers
Inherits
craft\helpers\Json » yii\helpers\Json » yii\helpers\BaseJson
Since
3.0.0

Class Json

View source

Public Properties ​

PropertyDescription
jsonErrorMessagesarray – List of JSON Error messages assigned to constant names for better handling of PHP <= 5.5.
keepObjectTypeboolean – Avoids objects with zero-indexed keys to be encoded as array Json::encode((object)['test']) will be encoded as an object not as an array.
prettyPrintboolean, null – Enables human readable output a.k.a.

Public Methods ​

MethodDescription
decode()Decodes the given JSON string into a PHP data structure.
decodeFromFile()Decodes JSON from a given file path.
decodeIfJson()Decodes the given JSON string into a PHP data structure, only if the string is valid JSON.
detectIndent()Detects and returns the indentation sequence used by the given JSON string.
encode()Encodes the given value into a JSON string.
encodeToFile()Writes out a JSON file for the given value, maintaining its current indentation sequence if the file already exists.
errorSummary()Generates a summary of the validation errors.
htmlEncode()Encodes the given value into a JSON string HTML-escaping entities so it is safe to be embedded in HTML code.
isJsonObject()Returns whether a string value looks like a JSON object or array.

decodeFromFile() ​

Since
4.3.5

Decodes JSON from a given file path.

View source

Arguments ​

  • $file (string) – The file path
  • $asArray (boolean) – Whether to return objects in terms of associative arrays

Returns ​

mixed – The JSON-decoded file contents

Throws ​

decodeIfJson() ​

Decodes the given JSON string into a PHP data structure, only if the string is valid JSON.

View source

Arguments ​

  • $str (mixed) – The string to be decoded, if it's valid JSON.
  • $asArray (boolean) – Whether to return objects in terms of associative arrays.

Returns ​

mixed – The PHP data, or the given string if it wasn’t valid JSON.

detectIndent() ​

Since
5.0.0

Detects and returns the indentation sequence used by the given JSON string.

View source

Arguments ​

Returns ​

string

encode() ​

Encodes the given value into a JSON string.

The method enhances json_encode() by supporting JavaScript expressions. In particular, the method will not encode a JavaScript expression that is represented in terms of a \craft\helpers\JsExpression object.

Note that data encoded as JSON must be UTF-8 encoded according to the JSON specification. You must ensure strings passed to this method have proper encoding before passing them.

View source

Arguments ​

  • $value (mixed) – The data to be encoded.
  • $options (integer) – The encoding options. JSON_UNESCAPED_UNICODE is used by default.

Returns ​

string – The encoding result.

Throws ​

encodeToFile() ​

Writes out a JSON file for the given value, maintaining its current indentation sequence if the file already exists.

View source

Arguments ​

  • $path (string) – The file path
  • $value (mixed) – The data to be encoded.
  • $options (integer) – The encoding options. JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT is used by default.
  • $defaultIndent (string) – The default indentation sequence to use if the file doesn’t exist

isJsonObject() ​

Since
3.5.0

Returns whether a string value looks like a JSON object or array.

View source

Arguments ​

Returns ​

boolean

Protected Methods ​

MethodDescription
handleJsonError()Handles encode() and decode() errors by throwing exceptions with the respective error message.
processData()Pre-processes the data before sending it to json_encode().