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().