Сериализация в JSON
Для сериализации (кодирование) объекта PHP в JSON
используется функция json_encode()
. Кодируемое значение может быть любым типом данных PHP
, кроме ресурса такого как база данных или дескриптор файла. В приведенном ниже примере показано, как кодировать ассоциативный массив PHP
в объект JSON
:
<?
// Ассоциативный массив
$marks = array("Peter" => 65, "Harry" => 80, "John" => 78, "Clark" => 90);
var_dump(json_encode($marks)); // string(44) "{"Peter":65,"Harry":80,"John":78,"Clark":90}"
Точно так же можно закодировать индексированный массив PHP
в массив JSON
:
<?
// Индексированный массив
$colors = array("Red", "Green", "Blue", "Orange", "Yellow");
var_dump(json_encode($colors)); // string(40) "["Red","Green","Blue","Orange","Yellow"]"
Вы также можете заставить функцию json_encode()
возвращать индексированный массив PHP
как объект JSON
, используя параметр JSON_FORCE_OBJECT
, как показано в примере ниже:
<?
// Индексированный массив
$colors = array("Red", "Green", "Blue", "Orange");
var_dump(json_encode($colors, JSON_FORCE_OBJECT)); // string(47) "{"0":"Red","1":"Green","2":"Blue","3":"Orange"}"
Как вы можете видеть в приведенных выше примерах, неассоциативный массив может быть закодирован как массив или объект. Однако ассоциативный массив всегда кодируется как объект.