Bitrix-D7 22.2
Загрузка...
Поиск...
Не найдено
Класс Json
+ Граф наследования:Json:

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

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

Поля данных

const JSON_ERROR_UNKNOWN = -1
 

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

static serializeJson (&$data)
 
static convertData ($data)
 
static unConvertData ($data)
 
static checkException ($options=0)
 
static throwException ($e)
 

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

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

Методы

◆ 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
Исключения
ArgumentException

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

130 {
131 $e = json_last_error();
132
133 if ($e == JSON_ERROR_NONE)
134 {
135 return;
136 }
137
138 if ($e == JSON_ERROR_UTF8 && ($options & JSON_PARTIAL_OUTPUT_ON_ERROR))
139 {
140 return;
141 }
142
143 $message = sprintf('%s [%d]', json_last_error_msg(), $e);
144 self::throwException($message);
145 }
static throwException($e)
Definition: json.php:155

◆ convertData()

static convertData (   $data)
staticprotected

Converts $data to UTF-8 charset.

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

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

102 {
103 $culture = Context::getCurrent()->getCulture();
104
105 return Encoding::convertEncoding($data, $culture->getCharset(), 'UTF-8');
106 }
static getCurrent()
Definition: context.php:245

◆ decode()

static decode (   $data)
static

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

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

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

54 {
55 $res = json_decode($data, true);
56
58
59 // PHP<5.3.3 returns no error for JSON_ERROR_UTF8 and some other ones
60 if($res === null && strtolower($data) != 'null')
61 {
62 self::throwException(self::JSON_ERROR_UNKNOWN);
63 }
64
65 if (!Application::getInstance()->isUtfMode())
66 {
67 $res = self::unConvertData($res);
68 }
69
70 return $res;
71 }
static checkException($options=0)
Definition: json.php:129
static unConvertData($data)
Definition: json.php:114

◆ 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
Исключения
ArgumentException
См. также
json_encode

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

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

25 {
26 if (!Application::getInstance()->isUtfMode())
27 {
29 $data = self::convertData($data);
30 }
31
32 if (is_null($options))
33 {
34 $options = JSON_HEX_TAG|JSON_HEX_AMP|JSON_HEX_APOS|JSON_HEX_QUOT;
35 }
36
37 $res = json_encode($data, $options);
38
39 self::checkException($options);
40
41 return $res;
42 }
static serializeJson(&$data)
Definition: json.php:79
static convertData($data)
Definition: json.php:101

◆ 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

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

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

◆ throwException()

static throwException (   $e)
staticprotected

Throws exception with message given.

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

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

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

◆ unConvertData()

static unConvertData (   $data)
staticprotected

Converts $data from UTF-8 charset.

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

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

115 {
116 $culture = Context::getCurrent()->getCulture();
117
118 return Encoding::convertEncoding($data, 'UTF-8', $culture->getCharset());
119 }

Поля

◆ JSON_ERROR_UNKNOWN

const JSON_ERROR_UNKNOWN = -1

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


Объявления и описания членов класса находятся в файле: