MediaWiki master
MediaWiki\Json\JsonCodec Class Reference

Inherits MediaWiki\Json\JsonUnserializer, and MediaWiki\Json\JsonSerializer.

Collaboration diagram for MediaWiki\Json\JsonCodec:

Public Member Functions

 detectNonSerializableData ( $value, bool $expectUnserialize=false)
 Checks if the $value is JSON-serializable (contains only scalar values) and returns a JSON-path to the first non-serializable property encountered.
 
 serialize ( $value)
 Encode $value as JSON with an intent to use JsonUnserializer::unserialize to decode it back.
 
 unserialize ( $json, string $expectedClass=null)
 Restore an instance of simple type or JsonUnserializable subclass from the JSON serialization.
 
 unserializeArray (array $array)
 Helper to unserialize an array of JsonUnserializable instances or simple types.
 

Detailed Description

Definition at line 37 of file JsonCodec.php.

Member Function Documentation

◆ detectNonSerializableData()

MediaWiki\Json\JsonCodec::detectNonSerializableData ( $value,
bool $expectUnserialize = false )

Checks if the $value is JSON-serializable (contains only scalar values) and returns a JSON-path to the first non-serializable property encountered.

Parameters
mixed$value
bool$expectUnserializewhether to expect the $value to be unserializable with JsonUnserializer.
Returns
string|null JSON path to first encountered non-serializable property or null.
See also
JsonUnserializer
Since
1.36

Definition at line 295 of file JsonCodec.php.

Referenced by BenchmarkJsonCodec\execute().

◆ serialize()

MediaWiki\Json\JsonCodec::serialize ( $value)

Encode $value as JSON with an intent to use JsonUnserializer::unserialize to decode it back.

Parameters
mixed | JsonUnserializable$valueA value to encode. Can be any scalar, array, stdClass, JsonUnserializable or any combination of them.
Exceptions
InvalidArgumentExceptionif the value can not be serialized.
Returns
string

Implements MediaWiki\Json\JsonSerializer.

Definition at line 151 of file JsonCodec.php.

References MediaWiki\Json\FormatJson\ALL_OK, and MediaWiki\Json\FormatJson\encode().

Referenced by BenchmarkJsonCodec\execute().

◆ unserialize()

MediaWiki\Json\JsonCodec::unserialize ( $json,
string $expectedClass = null )

Restore an instance of simple type or JsonUnserializable subclass from the JSON serialization.

It supports passing array/object to allow manual decoding of the JSON string if needed.

Note
JSON objects are unconditionally unserialized as PHP associative arrays and not as instances of \stdClass.

@phpcs:ignore MediaWiki.Commenting.FunctionComment.ObjectTypeHintParam

Parameters
array | string | object$json
string | null$expectedClassWhat class to expect in unserialization. If null, no expectation. Must be a descendant of JsonUnserializable.
Exceptions
InvalidArgumentExceptionif the passed $json can't be unserialized.
Returns
mixed

Implements MediaWiki\Json\JsonUnserializer.

Definition at line 39 of file JsonCodec.php.

References MediaWiki\Json\FormatJson\FORCE_ASSOC, MediaWiki\Json\FormatJson\parse(), MediaWiki\Json\JsonConstants\TYPE_ANNOTATION, and MediaWiki\Json\JsonCodec\unserializeArray().

Referenced by BenchmarkJsonCodec\execute(), and MediaWiki\Json\JsonCodec\unserializeArray().

◆ unserializeArray()

MediaWiki\Json\JsonCodec::unserializeArray ( array $array)

Helper to unserialize an array of JsonUnserializable instances or simple types.

Parameters
array$array
Returns
array

Implements MediaWiki\Json\JsonUnserializer.

Definition at line 92 of file JsonCodec.php.

References MediaWiki\Json\JsonConstants\COMPLEX_ANNOTATION, and MediaWiki\Json\JsonCodec\unserialize().

Referenced by MediaWiki\Json\JsonCodec\unserialize().


The documentation for this class was generated from the following file: