1C-Bitrix
25.700.0
Загрузка...
Поиск...
Не найдено
json.php
См. документацию.
1
<?php
2
3
namespace
Bitrix\Main\Web;
4
5
use Bitrix\Main\ArgumentException;
6
use JsonException;
7
8
class
Json
9
{
10
public
const
DEFAULT_OPTIONS
= JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_UNESCAPED_UNICODE | JSON_INVALID_UTF8_SUBSTITUTE;
11
22
public
static
function
encode
(
$data
,
$options
=
null
)
23
{
24
if
(
$options
===
null
)
25
{
26
$options
= self::DEFAULT_OPTIONS;
27
}
28
29
try
30
{
31
$res
= json_encode(
$data
,
$options
| JSON_THROW_ON_ERROR);
32
}
33
catch
(JsonException $e)
34
{
35
self::checkException
($e,
$options
);
36
}
37
38
return
$res
;
39
}
40
50
public
static
function
decode
(
$data
)
51
{
52
try
53
{
54
$res
= json_decode(
$data
,
true
, 512, JSON_THROW_ON_ERROR);
55
}
56
catch
(JsonException $e)
57
{
58
self::checkException
($e);
59
}
60
61
return
$res
;
62
}
63
64
public
static
function
validate
(
string
$data
): bool
65
{
66
// On PHP 8.3 replace to
67
// return json_validate($data);
68
69
try
70
{
71
if
(
$data
===
'null'
)
// consistency with json_validate
72
{
73
return
true
;
74
}
75
76
return
json_decode(json:
$data
, associative:
true
, flags: JSON_THROW_ON_ERROR) !==
null
;
77
}
78
catch
(JsonException)
79
{
80
return
false
;
81
}
82
}
83
91
protected
static
function
convertData
(
$data
)
92
{
93
return
$data
;
94
}
95
105
protected
static
function
checkException
(JsonException $exception,
$options
= 0)
106
{
107
$e = $exception->getCode();
108
109
if
($e == JSON_ERROR_UTF8 && (
$options
& JSON_PARTIAL_OUTPUT_ON_ERROR))
110
{
111
return
;
112
}
113
114
$message
= sprintf(
'%s [%d]'
, $exception->getMessage(), $e);
115
self::throwException
(
$message
);
116
}
117
126
protected
static
function
throwException
($e)
127
{
128
throw
new
ArgumentException
(
'JSON error: '
. $e,
'data'
);
129
}
130
}
Bitrix\Main\ArgumentException
Определения
ArgumentException.php:9
Bitrix\Main\Web\Json
Определения
json.php:9
Bitrix\Main\Web\Json\throwException
static throwException($e)
Определения
json.php:126
Bitrix\Main\Web\Json\DEFAULT_OPTIONS
const DEFAULT_OPTIONS
Определения
json.php:10
Bitrix\Main\Web\Json\decode
static decode($data)
Определения
json.php:50
Bitrix\Main\Web\Json\validate
static validate(string $data)
Определения
json.php:64
Bitrix\Main\Web\Json\convertData
static convertData($data)
Определения
json.php:91
Bitrix\Main\Web\Json\encode
static encode($data, $options=null)
Определения
json.php:22
Bitrix\Main\Web\Json\checkException
static checkException(JsonException $exception, $options=0)
Определения
json.php:105
$options
$options
Определения
commerceml2.php:49
$data
$data['IS_AVAILABLE']
Определения
.description.php:13
$res
$res
Определения
filter_act.php:7
$message
$message
Определения
payment.php:8
bitrix
modules
main
lib
web
json.php
Создано системой
1.14.0