javascript - JSON.parse() from localStorage issue - Stack Overflow

I am currently working on a little browser game and I am using the HTML localStorage to save some data.

I am currently working on a little browser game and I am using the HTML localStorage to save some data.

The problem: I have an empty array that i will later .push() some data into. I am storing this array in the localStorage but when i try to read from the local storage it doesn't work.

The Chrome Developer Tools console is giving me this error: "Uncaught SyntaxError: Unexpected token u" when trying to parse the data from localStorage.

Here's the code i am using:

var allContracts = [];
localStorage["allContracts"] = JSON.stringify(allContracts);

allContracts = JSON.parse(localStorage["allContracts"]);

There is more code than this but none of it is interacting with these in any way.

Is there a quirk with localStorage or JSON that i am not aware of and is causing this? (i am not very familiar with JSON or localStorage) Should i be doing this a different way? Or am i just missing an obvious mistake?

Thanks in advance :)

I am currently working on a little browser game and I am using the HTML localStorage to save some data.

The problem: I have an empty array that i will later .push() some data into. I am storing this array in the localStorage but when i try to read from the local storage it doesn't work.

The Chrome Developer Tools console is giving me this error: "Uncaught SyntaxError: Unexpected token u" when trying to parse the data from localStorage.

Here's the code i am using:

var allContracts = [];
localStorage["allContracts"] = JSON.stringify(allContracts);

allContracts = JSON.parse(localStorage["allContracts"]);

There is more code than this but none of it is interacting with these in any way.

Is there a quirk with localStorage or JSON that i am not aware of and is causing this? (i am not very familiar with JSON or localStorage) Should i be doing this a different way? Or am i just missing an obvious mistake?

Thanks in advance :)

Share Improve this question asked Feb 8, 2016 at 15:44 Vlad2000AndreiVlad2000Andrei 851 gold badge3 silver badges7 bronze badges 9
  • 1 Works just fine for me ? – adeneo Commented Feb 8, 2016 at 15:46
  • 1 I can't reproduce the issue on latest chrome, even after adding a push after your parse and writing again. – ssube Commented Feb 8, 2016 at 15:46
  • Couldn't replicate either, you need to provide more details. – Vikram Palakurthi Commented Feb 8, 2016 at 16:17
  • I can't reproduce your issue in Firefox or Chrome. – Marco Castelluccio Commented Feb 8, 2016 at 16:44
  • 1 @MarcosPérezGude oops, tried accepting multiple answers... yeah... you can tell i am new around here :P – Vlad2000Andrei Commented Feb 8, 2016 at 17:10
 |  Show 4 more ments

4 Answers 4

Reset to default 3

The best way is to use the methods that the interface of localStorage serves to you. It have setItem() and getItem() methods, so why not use to safe yourself?

var allContracts = [];
// setter
localStorage.setItem("allContracts",  JSON.stringify(allContracts));
//getter
var allContracts = JSON.parse(localStorage.getItem("allContracts"));

With your piece of code, you are overriding the localStorage global object with your own values, so you lost the functionality.

You make this:

localStorage = [] // transform the default localstorage into an array

And you need this:

localStorage.setItem(key, value)

More info: https://developer.mozilla/en-US/docs/Web/API/Window/localStorage

I have only just started using localStorqage myself, but it looks like you should be using window.localStorage.setItem() and window.localStorage.getItem()

You can use Reusable Approach like this.

export const localData = {
    set(key, value) {
        localStorage.setItem(key, JSON.stringify(value));
    },
    get(key) {
        const stored = localStorage.getItem(key);
        return stored == null ? undefined : JSON.parse(stored);
    },
    remove(key, value) {
        localStorage.removeItem(key);
    }
};

localData.set("user_name", "serialCoder")
console.log( "After set 

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745229553a4617615.html

相关推荐

  • javascript - JSON.parse() from localStorage issue - Stack Overflow

    I am currently working on a little browser game and I am using the HTML localStorage to save some data.

    4小时前
    10

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信