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 falsebez 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) { ... }