В этой главе мы покажем, как использовать язык PHP для кодирования и декодирования объектов JSON.
Расширение JSON встроено в php5.2.0 и выше.
функция | описывать |
---|---|
json_encode | Переменные кодирования JSON |
json_decode | Декодируйте строки в формате JSON и преобразуйте их в переменные PHP. |
json_last_error | Возвращает последнюю произошедшую ошибку |
PHP json_encode() используется для кодирования переменных JSON. Эта функция возвращает данные JSON в случае успешного выполнения, в противном случае она возвращает FALSE.
строка json_encode ($value [, $options = 0])
value : значение для кодирования. Эта функция действительна только для данных в кодировке UTF-8.
параметры : двоичная маска, состоящая из следующих констант: JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT.
В следующем примере показано, как преобразовать массив PHP в данные формата JSON:
<?php $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); echo json_encode($arr) ;?>
Результат выполнения приведенного выше кода:
{"а":1, "б":2, "в":3, "г":4, "е":5}
В следующем примере показано, как преобразовать объекты PHP в данные формата JSON:
<?php class Emp { public $name = ""; public $hobbies = ""; public $birthdate = "" } $e = new $e->name = "sachin"; хобби = "спорт"; $e->birthdate = date('m/d/Y h:i:s a', "05.08.1974 12:20:03 p"); date('m/d/Y h:i:s a', strtotime("05.08.1974 12:20:03")); echo json_encode($e);?>
Результат выполнения приведенного выше кода:
{"name":"сачин","хобби":"спорт","дата рождения":"08/05/1974 12:20:03"}
Функция PHP json_decode() используется для декодирования строк в формате JSON и преобразования их в переменные PHP.
смешанный json_decode ($json_string [,$assoc = false [, $глубина = 512 [, $options = 0 ]]])
json_string : строка JSON для декодирования должна представлять собой данные в кодировке UTF-8.
assoc : если этот параметр имеет значение TRUE, будет возвращен массив, а если значение FALSE, будет возвращен объект.
глубина : параметр целочисленного типа, задающий глубину рекурсии.
параметры : двоичная маска, в настоящее время поддерживается только JSON_BIGINT_AS_STRING.
В следующем примере показано, как декодировать данные JSON:
<?php $json = '{"a":1, "b":2, "c":3, "d":4, "e":5}'; var_dump(json_decode($json)); (json_decode($json, true));?>
Результат выполнения приведенного выше кода:
object(stdClass)#1 (5) { ["a"] => int(1) ["b"] => int(2) ["c"] => int(3) ["d"] => int(4) ["e"] => int(5)}array(5) { ["a"] => int(1) ["b"] => int(2) ["c"] => интервал (3) ["d"] => int(4) ["e"] => int(5)}