(PECL simdjson >= 2.0.0)
simdjson_is_valid — Проверяет, корректна ли JSON-строка
   Функция принимает строку в формате JSON и возвращает значение true, если формат данных корректен.
  
json
      Строка (string) в формате json для проверки.
     
Функция работает только со строками в кодировке UTF-8.
Функция анализирует входные данные, которые умеет декодировать функция json_decode(), при условии, что длина данных не превышает 4 ГиБ.
depth
      Максимальная глубина вложенности декодируемой структуры.
      Параметр принимает только значение, которое больше 0 и меньше или равно 2_147_483_647.
      Вызывающей стороне лучше указывать разумные маленькие значения,
      поскольку большая глубина требует больше места в буфере и увеличивает глубину рекурсии,
      в отличие от текущей реализации функции json_decode().
     
   Функция возвращает значение true, если в параметр json передали корректную
   JSON-строку, иначе возвращает значение false.
  
   Начиная с версии PECL simdjson 2.1.0 функция выбрасывает исключение SimdJsonException,
   если в параметр json передали значение больше 4 ГиБ;
   раньше функция выбрасывала исключение RuntimeException.
  
   Начиная с версии PECL simdjson 3.0.0 функция выбрасывает исключение SimdJsonValueError,
   если значение параметра depth выходит за пределы допустимого диапазона;
   раньше функция выдавала ошибку уровня E_WARNING.
  
Пример #1 Пример проверки корректности JSON-строки функцией simdjson_decode()
<?php
$json = '{"a":1,"b":2,"c":3}';
$invalidJson = '{"a":1,"b":2,"c":';
var_dump(simdjson_is_valid($json));
var_dump(simdjson_is_valid($invalidJson));
?>Результат выполнения приведённого примера:
bool(true) bool(false)
Пример #2 Ошибочные значения параметра depth
<?php
// Кодирование данных с максимальной глубиной 4
// (array -> array -> array -> string)
$json = json_encode(
    [
        1 => [
            'English' => [
                'One',
                'January'
            ],
            'French' => [
                'Une',
                'Janvier'
            ]
        ]
    ]
);
// Вывод ошибки для разных глубин
var_dump(simdjson_is_valid($json, 4));
var_dump(simdjson_is_valid($json, 3));
?>Результат выполнения приведённого примера:
bool(true) bool(false)
Замечание:
Спецификация JSON — не язык программирования JavaScript, а подмножество JavaScript-синтаксиса.
Замечание:
Функция выбрасывает исключение SimdJsonException, если возникла ошибка. Методы SimdJsonException::getCode() и SimdJsonException::getMessage() помогают определить точную природу ошибки.
