Ответ
В PHP для преобразования массива (или любого сериализуемого значения) в JSON-строку используется встроенная функция json_encode().
Базовый пример:
$userData = [
'name' => 'Анна',
'age' => 28,
'skills' => ['PHP', 'Laravel', 'MySQL'],
'isActive' => true
];
$jsonString = json_encode($userData);
echo $jsonString;
// Вывод: {"name":"u0410u043du043du0430","age":28,"skills":["PHP","Laravel","MySQL"],"isActive":true}
Важные флаги и обработка ошибок:
JSON_PRETTY_PRINT— для читаемого форматирования с отступами.JSON_UNESCAPED_UNICODE— чтобы кириллица и другие символы оставались в читаемом виде, а не в виде u-последовательностей.JSON_THROW_ON_ERROR(начиная с PHP 7.3) — чтобы функция бросала исключениеJsonExceptionпри ошибке, вместо молчаливого возвратаfalse.
Улучшенный пример с обработкой ошибок:
try {
$json = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_THROW_ON_ERROR);
} catch (JsonException $e) {
echo 'Ошибка кодирования JSON: ', $e->getMessage();
// Логируем или обрабатываем ошибку, возможно в данных есть ресурс (resource) или несериализуемый объект
}
Для обратного преобразования (из JSON в массив) используется json_decode($jsonString, true), где второй параметр true указывает на возврат ассоциативного массива, а не объекта stdClass.