@distorsion

Конвертировать строку в объект?

Получаю ответ от сервера в виде строки (backend на Google Cloud Platform). Когда делаю JSON.parse, то некоторые данные остаются строкой, приходится проходить еще раз JSON.parse. Есть ли какой нибудь способ конвертировать строку до тех пор пока она не станет объектом?
P.S. Я делал так, но иногда происходит зависание и крашится приложение.
let whileIs = true;

        while(whileIs){
            if(!(this.currentClient.jsondata instanceof Object)){
                console.log('1');
                this.currentClient.jsondata = JSON.parse(this.currentClient.jsondata);
            }
            else{
                whileIs = false;
            }
        }
  • Вопрос задан
  • 172 просмотра
Пригласить эксперта
Ответы на вопрос 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
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. Ограничить максимальное число итераций счётчиком. Ловить исключение.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы