PHP が特定の変数データが JSON データであるかどうかを判断する場合、まず、json_encode は文字列を返すのに対し、json_decode はオブジェクトを返すことを覚えておく必要があります (true パラメーターを追加すると配列が返されます)。
データがJSON形式ではないと判断します:
function is_not_json($str){ return is_null(json_decode($str)); }
データが正当な json データであるかどうかを判断します: (PHP バージョンは 5.3 以降)
function is_json($string) { json_decode($string); return (json_last_error() == JSON_ERROR_NONE); }
注: json エンコードおよびデコードで操作される文字列は UTF8 である必要があります。