Uncaught SyntaxError: неожиданный токен Y в JSON в позиции 0 в JSON.parse (<anonymous>)

1

У меня есть массив:

var newquestions;
questions = ["Item1","Item2","Item3","Item4","item5"];

Я сохраняю массив в localstorage следующим образом:

localStorage.setItem("newQuestionsArray", JSON.stringify(questions));

Я пытаюсь получить массив следующим образом:

newquestions = JSON.parse(localStorage.getItem("newQuestionsArray"));

Однако он дает эту ошибку:

Uncaught SyntaxError: Unexpected token I in JSON at position 0
at JSON.parse (<anonymous>)

Кто-нибудь знает, в чем проблема?

Спасибо

  • 0
    Вы пытались запустить localStorage.getItem("newQuestionsArray") в консоли браузера, чтобы просмотреть вывод?
  • 0
    Также это может быть опечатка, но в вашем вызове "setItem" есть посторонний пробел в конце ключа.
Показать ещё 1 комментарий
Теги:
arrays
parsing

3 ответа

1

Вы можете попробовать, чтобы проверить ошибки:

  1. Выясните размер localStorage и сравните с вашим json-объектом.

  2. Вы не хотите выделять большие объекты в одну запись localStorage. Это было бы очень неэффективно - все это нужно было бы анализировать и перекодировать каждый раз, когда некоторые незначительные изменения деталей. Кроме того, JSON не может обрабатывать множество перекрестных ссылок внутри структуры объекта и уничтожает множество деталей, например, конструктор, нечисловые свойства массивов, что в разреженной записи и т.д.

    В моем codepen он работает правильно здесь.

  • 0
    Извините, я добавил, что при написании этого вопроса в моем коде нет места, я обновил его в вопросе.
0

Вы должны обернуть массив в объект. (Поместите { и } вокруг массива). Это может помочь попытаться выполнить регистрацию содержимого перед его расшифровкой, чтобы узнать, действительно ли то, что вы вставляете,

0

В вашем коде есть опечатка, в которой вы устанавливаете элемент

localStorage.setItem("newQuestionsArray", JSON.stringify(questions));

После newQuestionsArray появляется пробел. Удалите это


Он должен работать нормально, если не было места. Или у вас есть огромные данные в этой переменной. Я думаю, что максимальный размер данных не может превышать 4 КБ. Так что это может быть проблемой при хранении

  • 0
    Извините, я добавил, что при написании этого вопроса в моем коде нет места, я обновил его в вопросе.
  • 0
    Это должно работать нормально тогда. Или у вас есть огромные данные в этой переменной. Я думаю, что максимальный размер данных не может быть больше 4 КБ. Так что это может быть проблема при хранении

Ещё вопросы

Сообщество Overcoder
Наверх
Меню