JSON.parse() выдает ошибку «неожиданный токен» для правильного JSON

Ошибка JSON.parse: Unexpected Token

JSON.parse() выдает ошибку «неожиданный токен» для правильного JSON

При работе с JSON порой происходит нечто непонятное - хотя строка JSON вроде бы и правильная, метод JSON.parse, выдает ошибку “unexpected token”. Это связано с тем, что JSON.parse не может разобрать некоторые специальные символы, такие как \n, \t, \r и \f. Поэтому и бросается исключение.

Поэтому, чтобы данное исключение не бросалось, необходимо экранировать эти специальные символы, прежде чем передавать строку JSON в функцию JSON.parse.

Вот функция, которая берет строку JSON и экранирует специальные символы:

  function escapeSpecialChars(jsonString) {
    return jsonString.replace(/\n/g, "\\n")
     .replace(/\r/g, "\\r")
     .replace(/\t/g, "\\t")
     .replace(/\f/g, "\\f");
  }

Таким образом вы можете решить ошибку "unexpected token" при работе с JSON.