Bitrix-D7  20.0.0
Класс Json
Граф наследования:Json:
YandexJson

Открытые статические члены

static encode ($data, $options=null)
 Returns a string containing the JSON representation of $data. Подробнее...
 
static decode ($data)
 Takes a JSON encoded string and converts it into a PHP variable. Подробнее...
 

Поля данных

const JSON_ERROR_UNKNOWN = -1
 

Защищенные статические члены

static serializeJson (&$data)
 Executes serializeJson on JsonSerializable objects for non-UTF8 instances. Подробнее...
 
static convertData ($data)
 Converts $data to UTF-8 charset. Подробнее...
 
static unConvertData ($data)
 Converts $data from UTF-8 charset. Подробнее...
 
static checkException ($options=0)
 Checks global error flag and raises exception if needed. Подробнее...
 
static throwException ($e)
 Throws exception with message given. Подробнее...
 

Подробное описание

См. определение в файле web/json.php строка 8

Методы

◆ checkException()

static checkException (   $options = 0)
staticprotected

Checks global error flag and raises exception if needed.

Аргументы
integer$optionsBitmasked options. When JSON_PARTIAL_OUTPUT_ON_ERROR passed no exception is raised.
Возвращает
void
Исключения

См. определение в файле web/json.php строка 122

123  {
124  $e = json_last_error();
125 
126  if ($e == JSON_ERROR_NONE)
127  {
128  return;
129  }
130 
131  if ($e == JSON_ERROR_UTF8 && ($options & JSON_PARTIAL_OUTPUT_ON_ERROR))
132  {
133  return;
134  }
135 
136  if (function_exists('json_last_error_msg'))
137  {
138  // Must be available on PHP >= 5.5.0
139  $message = sprintf('%s [%d]', json_last_error_msg(), $e);
140  }
141  else
142  {
143  $message = $e;
144  }
145 
146  self::throwException($message);
147  }

◆ convertData()

static convertData (   $data)
staticprotected

Converts $data to UTF-8 charset.

Аргументы
mixed$dataInput data.
Возвращает
mixed

См. определение в файле web/json.php строка 98

99  {
100  return Encoding::convertEncoding($data, SITE_CHARSET, 'UTF-8');
101  }

◆ decode()

static decode (   $data)
static

Takes a JSON encoded string and converts it into a PHP variable.

Аргументы
string$dataThe json string being decoded.
Возвращает
mixed
Исключения

См. определение в файле web/json.php строка 51

52  {
53  $res = json_decode($data, true);
54 
56 
57  // PHP<5.3.3 returns no error for JSON_ERROR_UTF8 and some other ones
58  if($res === null && ToLower($data) != 'null')
59  {
60  self::throwException(self::JSON_ERROR_UNKNOWN);
61  }
62 
63  if (!Application::getInstance()->isUtfMode())
64  {
65  $res = self::unConvertData($res);
66  }
67 
68  return $res;
69  }

◆ encode()

static encode (   $data,
  $options = null 
)
static

Returns a string containing the JSON representation of $data.

Аргументы
mixed$dataThe value being encoded.
null$optionsBitmasked options. Default is JSON_HEX_TAG|JSON_HEX_AMP|JSON_HEX_APOS|JSON_HEX_QUOT.
Возвращает
mixed
Исключения

Переопределяется в YandexJson.

См. определение в файле web/json.php строка 22

23  {
24  if (!Application::getInstance()->isUtfMode())
25  {
26  self::serializeJson($data);
27  $data = self::convertData($data);
28  }
29 
30  if (is_null($options))
31  {
32  $options = JSON_HEX_TAG|JSON_HEX_AMP|JSON_HEX_APOS|JSON_HEX_QUOT;
33  }
34 
35  $res = json_encode($data, $options);
36 
37  self::checkException($options);
38 
39  return $res;
40  }

◆ serializeJson()

static serializeJson ( $data)
staticprotected

Executes serializeJson on JsonSerializable objects for non-UTF8 instances.

We have to do it manually to prevent "malformed UTF-8 characters" error.

Аргументы
mixed$data

См. определение в файле web/json.php строка 77

78  {
79  if($data instanceof \JsonSerializable)
80  {
81  $data = $data->jsonSerialize();
82  }
83  else if (is_iterable($data))
84  {
85  foreach ($data as $key => $value)
86  {
87  self::serializeJson($data[$key]);
88  }
89  }
90  }

◆ throwException()

static throwException (   $e)
staticprotected

Throws exception with message given.

Аргументы
string$eException message.
Возвращает
void
Исключения

См. определение в файле web/json.php строка 157

158  {
159  throw new ArgumentException('JSON error: '.$e, 'data');
160  }

◆ unConvertData()

static unConvertData (   $data)
staticprotected

Converts $data from UTF-8 charset.

Аргументы
mixed$dataInput data.
Возвращает
mixed

См. определение в файле web/json.php строка 109

110  {
111  return Encoding::convertEncoding($data, 'UTF-8', SITE_CHARSET);
112  }

Поля

◆ JSON_ERROR_UNKNOWN

const JSON_ERROR_UNKNOWN = -1

См. определение в файле web/json.php строка 10


Объявления и описания членов класса находятся в файле:
Bitrix\Main\Web\Json\serializeJson
static serializeJson(&$data)
Executes serializeJson on JsonSerializable objects for non-UTF8 instances.
Definition: web/json.php:77
Bitrix\Main\Web\Json\checkException
static checkException($options=0)
Checks global error flag and raises exception if needed.
Definition: web/json.php:122
Bitrix\Main\Web\Json\throwException
static throwException($e)
Throws exception with message given.
Definition: web/json.php:157
Bitrix\Main\Web\Json\unConvertData
static unConvertData($data)
Converts $data from UTF-8 charset.
Definition: web/json.php:109
Bitrix\Main\Application\getInstance
static getInstance()
Returns current instance of the Application.
Definition: main/lib/application.php:86
Bitrix\Main\Text\Encoding\convertEncoding
static convertEncoding($data, $charsetFrom, $charsetTo, &$errorMessage="")
Converts data from a source encoding to a target encoding.
Definition: encoding.php:53
Bitrix\Main\Web\Json\convertData
static convertData($data)
Converts $data to UTF-8 charset.
Definition: web/json.php:98