simdjson_decode
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
simdjson_decode
Референца за `function.simdjson-decode.php` со подобрена типографија и навигација.
simdjson_decode
(PECL simdjson >= 2.0.0)
simdjson_decode — Декодира JSON стринг
= NULL
Takes a JSON encoded string and converts it into a PHP value. This uses a faster Simultaneous Instruction, Multiple Data implementation than json_decode() Зема JSON кодиран стринг и го претвора во PHP вредност. Ова користи побрза имплементација на истовремени инструкции, повеќе податоци отколку
Параметри
json-
На
jsonstring се декодира. Оваа функција работи само со UTF-8 кодирани стрингови. се прашува и декодира. json_decode() Оваа функција парсира валидни влезови кои associative-
Кога
true, JSON објектите ќе бидат вратени како асоцијативни array; когаfalse, JSON објектите ќе бидат вратени како objects. depth-
Максимална длабочина на вгнездување на структурата што се декодира. Вредноста мора да биде поголема од
0, и помала или еднаква на2147483647JSON локацијата json_decode() implementation.
Вратени вредности
Ја враќа вредноста кодирана во json кога е поддржано од компјутерската архитектура. true, false and
null се враќаат како true, false and null
respectively.
Errors/Exceptions
Враќа json во соодветен PHP тип. Вредности SimdJsonException не можеше да се најде во RuntimeException беше фрлен.
Враќа depth е надвор од дозволениот опсег, а SimdJsonValueError се фрла од PECL simdjson 2.1.0, додека претходно, грешка од ниво E_WARNING беше кренат.
Примери
Пример #1 simdjson_decode() examples
<?php
$json = '{"a":1,"b":2,"c":3}';
var_dump(simdjson_decode($json));
var_dump(simdjson_decode($json, true));
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
object(stdClass)#1 (3) {
["a"]=>
int(1)
["b"]=>
int(2)
["c"]=>
int(3)
}
array(3) {
["a"]=>
int(1)
["b"]=>
int(2)
["c"]=>
int(3)
}
Пример #2 Пристап до невалидни ставки на објектот
Пристапот до елементи во објект што содржат знаци што не се дозволени според конвенцијата за именување на PHP (на пр. цртичка) може да се постигне со ставање на името на елементот во загради и апостроф.
<?php
$json = '{"foo-bar": 12345}';
$obj = simdjson_decode($json);
print $obj->{'foo-bar'}; // 12345
?>Пример #3 Вообичаени грешки при користење simdjson_decode()
<?php
// the following strings are valid JavaScript but not valid JSON
// the name and value must be enclosed in double quotes
// single quotes are not valid
$bad_json = "{ 'bar': 'baz' }";
simdjson_decode($bad_json); // Throws SimdJsonException
// the name must be enclosed in double quotes
$bad_json = '{ bar: "baz" }';
simdjson_decode($bad_json); // Throws SimdJsonException
// trailing commas are not allowed
$bad_json = '{ bar: "baz", }';
simdjson_decode($bad_json); // Throws SimdJsonException
?>Пример #4 depth errors
<?php
// Encode some data with a maximum depth of 4
// (array -> array -> array -> string)
$json = json_encode(
[
1 => [
'English' => [
'One',
'January'
],
'French' => [
'Une',
'Janvier'
]
]
]
);
// Show the errors for different depths.
var_dump(simdjson_decode($json, true, 4));
try {
var_dump(simdjson_decode($json, true, 3));
} catch (SimdJsonException $e) {
echo "Caught: ", $e->getMessage(), "\n";
}
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
array(1) {
[1]=>
array(2) {
["English"]=>
array(2) {
[0]=>
string(3) "One"
[1]=>
string(7) "January"
}
["French"]=>
array(2) {
[0]=>
string(3) "Une"
[1]=>
string(7) "Janvier"
}
}
}
Caught: The JSON document was too deep (too many nested objects and arrays)
Генератор simdjson_decode() на големи цели броеви
<?php
$json = '{"number": 12345678901234567890}';
var_dump(simdjson_decode($json));
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
object(stdClass)#1 (1) {
["number"]=>
float(1.2345678901235E+19)
}
Белешки
Забелешка: JSON спецификацијата не е JavaScript, туку подмножество на JavaScript.
Забелешка: е невалиден, а SimdJsonException Во случај на неуспех при декодирање, а се фрла и and SimdJsonException::getCode() може да се користи за да се утврди точната природа на грешката.
Види Исто така
- json_encode() - Враќа JSON претстава на вредност
- json_decode() - Декодира JSON стринг