Как узнать что передается именно JSON?
try {
    jQuery.parseJSON(response);
} catch(error) {
    // это не json
}
var parsedData;

try {
    parsedData = JSON.parse(data)
} catch (e) {
    // is not a valid JSON string
}
Такой вариант вам не подходит?