Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

'Uncaught SyntaxError: Unexpected token u' when using JSON.parse

I'm using JSON.parse as a simple database on my computer with LocalStorage. It works smoothly until I'm doing the check of this "database"; heres the code for entering information to LocalStorage:

var users = JSON.parse(localStorage.registeredUsers);
users.push({username:name, password:userpass, connected:false});
localStorage.registeredUsers = JSON.stringify(users);

and when I', having the check of that registeredusers I get the error "Uncaught SyntaxError: Unexpected token u":

var users = JSON.parse(localStorage.registeredUsers);
        if(users[userindex].connected)
        {.........}

The error points to the line with JSON.parse. I tried to figure it out with some similiar topics but couldnt find the way.

The code that I push into the array of localstorage:

function regBtn(event)
    {
        event.preventDefault();
        name=document.forms["regform"]["username"].value;
        userpass=document.forms["regform"]["password"].value;
        localStorage.username=name;
        localStorage.password=userpass;
        if(!(localStorage.registeredUsers))
        {
            localStorage.registeredUsers = '[]';
        }
        var users = JSON.parse(localStorage.registeredUsers);
        users.push({username:name, password:userpass, connected:false});
        localStorage.registeredUsers = JSON.stringify(users);
        $('#mainContent').load('HomePage.html');        
    }
like image 268
Juvi Avatar asked Nov 24 '13 10:11

Juvi


1 Answers

Try

var users = localStorage.registeredUsers? JSON.parse(localStorage.registeredUsers) : [];

or if you don't like the ternary operator,

var users=[];
if(localStorage.registeredUsers){
  users=JSON.parse(localStorage.registeredUsers);
}

might help

like image 152
Charlie Affumigato Avatar answered Sep 28 '22 01:09

Charlie Affumigato