JSON.parse() возвращает объект или бросает исключение SyntaxError, если не парсится.
Попробуйте примерно так:
var lastGood = this.currentClient.jsondata, candidate, counter = 0, found = false;
while ( ++counter < 100) {
try {
candidate = JSON.parse(boo);
} catch(e) {
this.currentClient.jsondata = lastGood;
found = true;
}
if( found) break;
lastGood = candidate;
}
Не сразу назначать полученное значение, а исползовать промежуточную переменную
candidate
. Ограничить максимальное число итераций счётчиком. Ловить исключение.