2015-10-13 178 views
1

如何将var string = "{email: [email protected]}"解析为对象?如何解析对象的字符串?

我已经试过var object = JSON.parse(string);它返回一个错误

Uncaught SyntaxError: Unexpected token e(…) 

而且var object eval('(' + string + ')');无法处理 '@'。

+0

您的字符串无效JSON。你使用什么格式? – tcooc

+0

'JSON.parse'不工作,因为'email'键和相应的值需要是字符串才能成为有效的JSON。如果你只是在学习JSON,或者没有完全掌握语法,请尝试通过[JSONLint](http://jsonlint.com/)运行它,它会为你指出错误。 –

+0

这就是说,相反,字符串应该是这样的: 'var string =“{'email':'[email protected]'}”'? – Wesley

回答

0

由于您使用了无效的JSON字符串,因此无法将您的字符串转换为JavaScript对象。更改

var string = "{email: [email protected]}"; 

var string = '{"email": "[email protected]"}'; 

var string = '{"email": "[email protected]"}'; 
+0

这仍然是无效的JSON –

+0

对不起,我改变了它。 – Aakash

+0

我们走了,好多了! –

1

感谢@ iam解码器 - 查看最初问题的评论以获取更多信息。

两个成功为我返回对象的解决方案。

首先 - 保存价值与转义字符的字符串如下:
var string = "{\"email\": \"[email protected]\"}"
var result = JSON.parse(string);


二 - 只需透过JSON.stringify的对象,而不是建立一个字符串,然后解析:
var string = JSON.stringify(object);
var result = JSON.parse(string);