Как прочитать и записать JSON-файл
Короткий ответ
Прочитайте файл строкой и разберите её:
<?php
$file = sys_get_temp_dir() . '/recipe-settings.json';
file_put_contents($file, '{"theme":"dark","size":14}');
$settings = json_decode(file_get_contents($file), true);
echo $settings['theme'], ' ', $settings['size'];Результат:
dark 14Запись
JSON_PRETTY_PRINT делает файл удобным для чтения, JSON_UNESCAPED_UNICODE сохраняет буквы как есть:
<?php
$file = sys_get_temp_dir() . '/recipe-settings.json';
$settings = ['theme' => 'light', 'city' => 'Zürich'];
file_put_contents($file, json_encode($settings, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE));
echo file_get_contents($file);Результат:
{
"theme": "light",
"city": "Zürich"
}Повреждённый файл
С флагом JSON_THROW_ON_ERROR ошибка разбора становится исключением:
<?php
try {
json_decode('{"theme": "dark",}', true, flags: JSON_THROW_ON_ERROR);
} catch (JsonException $e) {
echo 'Broken file: ', $e->getMessage();
}Результат:
Broken file: Syntax errorФункции из этого ответа
- json_decode — Разбирает строку JSON.
- json_encode — Преобразует значение в строку JSON.
- file_put_contents — Записывает данные в файл.