json_encode Возвращает JSON-представление данных &reftitle.description; stringjson_encode mixedvalue intoptions0 intdepth512 Возвращает строку, содержащую JSON-представление value. &reftitle.parameters; value value - значение, которое будет закодировано. Может быть любого типа за исключением resource. Все строковые данные должны быть в кодировке UTF-8. &json.implementation.superset; options Битовая маска составляемая из значений JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT, JSON_UNESCAPED_UNICODE. Смысл этих констант объясняется на странице JSON констант. depth Задает максимальную глубину. Должен быть больше нуля. &reftitle.returnvalues; Возвращает JSON закодированную строку (string) в случае успеха &return.falseforfailure;. &reftitle.changelog; &Version; &Description; 5.5.0 Добавлен параметр depth. 5.4.0 В options были добавлены константы JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, и JSON_UNESCAPED_UNICODE. 5.3.3 Константа JSON_NUMERIC_CHECK была добавлена в option. 5.3.0 Был добавлен параметр options. &reftitle.examples; Пример использования <function>json_encode</function> 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); echo json_encode($arr); ?> ]]> &example.outputs; Пример использования <function>json_encode</function>, показывающий действия некоторых его опций ',"'bar'",'"baz"','&blong&', "\xc3\xa9"); echo "Обычно: ", json_encode($a), "\n"; echo "Тэги: ", json_encode($a, JSON_HEX_TAG), "\n"; echo "Апострофы: ", json_encode($a, JSON_HEX_APOS), "\n"; echo "Кавычки: ", json_encode($a, JSON_HEX_QUOT), "\n"; echo "Амперсанды: ", json_encode($a, JSON_HEX_AMP), "\n"; echo "Юникод: ", json_encode($a, JSON_UNESCAPED_UNICODE), "\n"; echo "Все: ", json_encode($a, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE), "\n\n"; $b = array(); echo "Отображение пустого массива как массива: ", json_encode($b), "\n"; echo "Отображение пустого массива как объекта: ", json_encode($b, JSON_FORCE_OBJECT), "\n\n"; $c = array(array(1,2,3)); echo "Отображение неассоциативного массива как массива: ", json_encode($c), "\n"; echo "Отображение неассоциативного массива как объекта: ", json_encode($c, JSON_FORCE_OBJECT), "\n\n"; $d = array('foo' => 'bar', 'baz' => 'long'); echo "Ассоциативный массив всегда отображается как объект: ", json_encode($d), "\n"; echo "Ассоциативный массив всегда отображается как объект: ", json_encode($d, JSON_FORCE_OBJECT), "\n\n"; ?> ]]> &example.outputs; ","'bar'","\"baz\"","&blong&","\u00e9"] Тэги: ["\u003Cfoo\u003E","'bar'","\"baz\"","&blong&","\u00e9"] Апострофы: ["","\u0027bar\u0027","\"baz\"","&blong&","\u00e9"] Кавычки: ["","'bar'","\u0022baz\u0022","&blong&","\u00e9"] Амперсанды: ["","'bar'","\"baz\"","\u0026blong\u0026","\u00e9"] Unicode: ["","'bar'","\"baz\"","&blong&","é"] Все: ["\u003Cfoo\u003E","\u0027bar\u0027","\u0022baz\u0022","\u0026blong\u0026","é"] Отображение пустого массива как массива: [] Отображение не ассоциативного массива как объекта: {} Отображение неассоциативного массива как массива: [[1,2,3]] Отображение неассоциативного массива как объекта: {"0":{"0":1,"1":2,"2":3}} Ассоциативный массив всегда отображается как объект: {"foo":"bar","baz":"long"} Ассоциативный массив всегда отображается как объект: {"foo":"bar","baz":"long"} ]]> Пример с последовательными индексами начинающимися с нуля и непоследовательными индексами массивов "foo", 2=>"bar", 3=>"baz", 4=>"blong"); var_dump( $nonsequential, json_encode($nonsequential) ); echo PHP_EOL."Последовательный массив с одним удаленным индексом".PHP_EOL; unset($sequential[1]); var_dump( $sequential, json_encode($sequential) ); ?> ]]> &example.outputs; string(3) "foo" [1]=> string(3) "bar" [2]=> string(3) "baz" [3]=> string(5) "blong" } string(27) "["foo","bar","baz","blong"]" Непоследовательный массив array(4) { [1]=> string(3) "foo" [2]=> string(3) "bar" [3]=> string(3) "baz" [4]=> string(5) "blong" } string(43) "{"1":"foo","2":"bar","3":"baz","4":"blong"}" Последовательный массив с одним удаленным индексом array(3) { [0]=> string(3) "foo" [2]=> string(3) "baz" [3]=> string(5) "blong" } string(33) "{"0":"foo","2":"baz","3":"blong"}" ]]> &reftitle.notes; В случае ошибки кодирования, можно использовать json_last_error для определения точной ошибки. При кодировании массива в случае, если его индексы не являются последовательными числами от нуля, то все индексы кодируются в строковые ключи для каждой пары индекс-значение. Как и эталонный кодировщик JSON, json_encode будет создавать JSON в виде простого значения (т.е. не объект и не массив), если ему переданы string, integer, float или boolean в качестве входящего значения value. Большинство декодеров воспринимают эти значения как правильный JSON, но некоторые нет, потому что спецификация неоднозначна на этот счет. Всегда проверяйте, что ваш JSON декодер может правильно обрабатывать данные, которые вы создаете с помощью json_encode. &reftitle.seealso; JsonSerializable json_decode json_last_error serialize