<? phpukraine ІНСТРУМЕНТИ
⌕Пошук по платформі

Перевірка JSON онлайн

Каже, чи валідний JSON, і якщо ні, показує рядок, колонку та найімовірнішу причину.

У БРАУЗЕРІ ТЕКСТ → ТЕКСТ
РОБОЧА ЗОНА
ЩО РОБИТЬ

Знаходить кому, через яку не парситься весь файл

Файл конфігурації, вебхук від платіжки чи відповідь стороннього сервісу не розбираються, а помилка від json_decode каже лише Syntax error. Інструмент показує точний рядок і колонку, підсвічує місце і пояснює, що там не так.

ЯК ЦЕ ПРАЦЮЄ В PHP

json_decode повертає null на помилці, і це легко сплутати з валідним JSON, який дорівнює null. Тому в новому коді додавайте JSON_THROW_ON_ERROR і ловіть JsonException, а в старому перевіряйте json_last_error(). З PHP 8.3 є json_validate(), яка лише перевіряє синтаксис без побудови структури і економить памʼять на великих документах.

// PHP 8.3+: перевірка без розбору
if (! json_validate($payload)) {
    throw new InvalidArgumentException('Невалідний JSON: ' . json_last_error_msg());
}

// Розбір з винятком замість тихого null
try {
    $data = json_decode($payload, true, 512, JSON_THROW_ON_ERROR);
} catch (JsonException $e) {
    report($e);   // "Syntax error" з кодом JSON_ERROR_SYNTAX
}
ПИТАННЯ

Що питають про цей інструмент

Кома після останнього елемента, одинарні лапки замість подвійних, ключ без лапок, коментар усередині, невидимий символ BOM на початку файлу. Інструмент показує позицію, і зазвичай причина стоїть на символ раніше.

json_decode вимагає коректний UTF-8. Якщо рядок прийшов з бази у Windows-1251 або був обрізаний посеред багатобайтового символу, розбір падає з JSON_ERROR_UTF8. Перевірте кодування джерела, а не синтаксис.

Ні, лише синтаксис. Що всередині мають бути саме такі ключі й типи, описує JSON Schema, і для цього в PHP є окремі бібліотеки, наприклад opis/json-schema.

ДАЛІ ПО ТЕМІ