Бортовой журнал Ктулху

Как проверить, является ли строка JSON'ом на PHP

JSON - результат работы функции json_encode().  Под катом будет описан метод проверки строки, является ли она JSON или нет.

 

Объект или нет

Если в результате работы функции json_decode() вернулся объект, входящая строка являлась JSON.

function isJSON($string){
 return is_string($string) && is_array(json_decode($string, true)) ? true : false;
}

По умолчанию на выходе функции json_decode объект.

Массивы и ошибки

Второй способ проверки - декодирование в массив и проверка функцией json_jast_error() на ошибки.

function isJSON($string){
 return is_string($string) && is_array(json_decode($string, true)) && (json_last_error() == JSON_ERROR_NONE) ? true : false;
}

Если добавить функции json_decode аргумент true, на выходе будет массив.

Кроме того, функция json_last_error выводит ошибки и если их нет, строка была в JSON.

Отсюда: subinsb.com