SyntaxError: Unexpected token o in JSON at position 1 SyntaxError: Unexpected token o in JSON at position 1 angularjs angularjs

SyntaxError: Unexpected token o in JSON at position 1


The JSON you posted looks fine, however in your code, it is most likely not a JSON string anymore, but already a JavaScript object. This means, no more parsing is necessary.

You can test this yourself, e.g. in Chrome's console:

new Object().toString()// "[object Object]"JSON.parse(new Object())// Uncaught SyntaxError: Unexpected token o in JSON at position 1JSON.parse("[object Object]")// Uncaught SyntaxError: Unexpected token o in JSON at position 1

JSON.parse() converts the input into a string. The toString() method of JavaScript objects by default returns [object Object], resulting in the observed behavior.

Try the following instead:

var newData = userData.data.userList;


The first parameter of the JSON.parse function is expected to be a string, and your data is a JavaScript object, so it will coerce it to the string "[object Object]". You should use JSON.stringify before passing the data:

JSON.parse(JSON.stringify(userData))


Don't ever use JSON.parse without wrapping it in try-catch block:

// payload let userData = null;try {    // Parse a JSON    userData = JSON.parse(payload); } catch (e) {    // You can read e for more info    // Let's assume the error is that we already have parsed the payload    // So just return that    userData = payload;}// Now userData is the parsed result