json_validate
funkcja
Sprawdza czy string jest poprawnym JSON-em (PHP 8.3+). Szybsze od json_decode gdy nie potrzebujesz wartości.
json_validate(string $json, int $depth = 512, int $flags = 0): bool
json_validate (dostępna od PHP 8.3) weryfikuje poprawność składniową ciągu JSON zwracając true lub false — bez budowania wartości PHP. To kluczowa zaleta: jest tańsza pamięciowo i czasowo niż json_decode + sprawdzenie błędu, gdy interesuje Cię tylko czy dane są poprawnym JSON-em. Parametr $depth ogranicza maksymalne zagnieżdżenie (domyślnie 512).
<?php
declare(strict_types=1);
var_dump(json_validate('{"a":1}')); // wynik: bool(true)
var_dump(json_validate('{bad}')); // wynik: bool(false)
var_dump(json_validate('[1,2,3]')); // wynik: bool(true)
// Ograniczenie zagnieżdżenia
var_dump(json_validate('{"a":{"b":1}}', depth: 1)); // wynik: bool(false)
// Stara technika (droższa — dekoduje cały dokument):
// $dane = json_decode($json);
// if (json_last_error() !== JSON_ERROR_NONE) { ... }