MediaWiki REL1_31
|
JSON formatter wrapper class. More...
Static Public Member Functions | |
static | decode ( $value, $assoc=false) |
Decodes a JSON string. | |
static | encode ( $value, $pretty=false, $escaping=0) |
Returns the JSON representation of a value. | |
static | parse ( $value, $options=0) |
Decodes a JSON string. | |
static | stripComments ( $json) |
Remove multiline and single line comments from an otherwise valid JSON input string. | |
Public Attributes | |
const | ALL_OK = 3 |
Skip escaping as many characters as reasonably possible. | |
const | FORCE_ASSOC = 0x100 |
If set, treat json objects '{...}' as associative arrays. | |
const | STRIP_COMMENTS = 0x400 |
If set, strip comments from input before parsing as JSON. | |
const | TRY_FIXING = 0x200 |
If set, attempts to fix invalid json. | |
const | UTF8_OK = 1 |
Skip escaping most characters above U+007F for readability and compactness. | |
const | WS_CLEANUP_REGEX = '/(?<=[\[{])\n\s*+(?=[\]}])/' |
Regex that matches whitespace inside empty arrays and objects. | |
const | XMLMETA_OK = 2 |
Skip escaping the characters '<', '>', and '&', which have special meanings in HTML and XML. | |
Static Private Attributes | |
static | $badChars |
Characters problematic in JavaScript. | |
static | $badCharsEscaped |
Escape sequences for characters listed in FormatJson::$badChars. | |
JSON formatter wrapper class.
Definition at line 26 of file FormatJson.php.
|
static |
Decodes a JSON string.
It is recommended to use FormatJson::parse(), which returns more comprehensive result in case of an error, and has more parsing options.
string | $value | The JSON string being decoded |
bool | $assoc | When true, returned objects will be converted into associative arrays. |
null
is returned if $value represented null
, if $value could not be decoded, or if the encoded data was deeper than the recursion limit. Use FormatJson::parse() to distinguish between types of null
and to get proper error code. Definition at line 187 of file FormatJson.php.
References $value.
Referenced by MediaWiki\Site\MediaWikiPageNameNormalizer\normalizePageName().
|
static |
Returns the JSON representation of a value.
mixed | $value | The value to encode. Can be any type except a resource. |
string | bool | $pretty | If a string, add non-significant whitespace to improve readability, using that string for indentation. If true, use the default indent string (four spaces). |
int | $escaping | Bitfield consisting of _OK class constants |
Definition at line 127 of file FormatJson.php.
|
static |
Decodes a JSON string.
Unlike FormatJson::decode(), if $value represents null value, it will be properly decoded as valid.
string | $value | The JSON string being decoded |
int | $options | A bit field that allows FORCE_ASSOC, TRY_FIXING, STRIP_COMMENTS |
Definition at line 201 of file FormatJson.php.
References $code, $options, $value, and wfMessage().
|
static |
Remove multiline and single line comments from an otherwise valid JSON input string.
This can be used as a preprocessor for to allow JSON formatted configuration files to contain comments.
string | $json |
Definition at line 272 of file FormatJson.php.
|
staticprivate |
Characters problematic in JavaScript.
Definition at line 97 of file FormatJson.php.
|
staticprivate |
Escape sequences for characters listed in FormatJson::$badChars.
Definition at line 105 of file FormatJson.php.
const FormatJson::ALL_OK = 3 |
Skip escaping as many characters as reasonably possible.
Definition at line 55 of file FormatJson.php.
const FormatJson::FORCE_ASSOC = 0x100 |
If set, treat json objects '{...}' as associative arrays.
Without this option, json objects will be converted to stdClass. The value is set to 1 to be backward compatible with 'true' that was used before.
Definition at line 64 of file FormatJson.php.
const FormatJson::STRIP_COMMENTS = 0x400 |
If set, strip comments from input before parsing as JSON.
Definition at line 78 of file FormatJson.php.
const FormatJson::TRY_FIXING = 0x200 |
const FormatJson::UTF8_OK = 1 |
Skip escaping most characters above U+007F for readability and compactness.
This encoding option saves 3 to 8 bytes (uncompressed) for each such character; however, it could break compatibility with systems that incorrectly handle UTF-8.
Definition at line 34 of file FormatJson.php.
const FormatJson::WS_CLEANUP_REGEX = '/(?<=[\[{])\n\s*+(?=[\]}])/' |
Regex that matches whitespace inside empty arrays and objects.
This doesn't affect regular strings inside the JSON because those can't have a real line break (\n) in them, at this point they are already escaped as the string "\\n" which this doesn't match.
Definition at line 89 of file FormatJson.php.
const FormatJson::XMLMETA_OK = 2 |
Skip escaping the characters '<', '>', and '&', which have special meanings in HTML and XML.
Definition at line 46 of file FormatJson.php.