如何解析对象的字符串?
问题描述:
如何将var string = "{email: [email protected]}"
解析为对象?如何解析对象的字符串?
我已经试过var object = JSON.parse(string);
它返回一个错误
Uncaught SyntaxError: Unexpected token e(…)
而且var object eval('(' + string + ')');
无法处理 '@'。
答
由于您使用了无效的JSON字符串,因此无法将您的字符串转换为JavaScript对象。更改
var string = "{email: [email protected]}";
到
var string = '{"email": "[email protected]"}';
或
var string = '{"email": "[email protected]"}';
答
您可以使用此语法使用JSON
var obj = JSON.parse('{"email":"[email protected]"}');
或这一个与评估和演示
var obj = eval('('+'{email:"[email protected]"}'+')');
答
感谢@ iam解码器 - 查看最初问题的评论以获取更多信息。
两个成功为我返回对象的解决方案。
首先 - 保存价值与转义字符的字符串如下: var string = "{\"email\": \"[email protected]\"}"
var result = JSON.parse(string);
二 - 只需透过JSON.stringify的对象,而不是建立一个字符串,然后解析: var string = JSON.stringify(object);
var result = JSON.parse(string);
您的字符串无效JSON。你使用什么格式? – tcooc
'JSON.parse'不工作,因为'email'键和相应的值需要是字符串才能成为有效的JSON。如果你只是在学习JSON,或者没有完全掌握语法,请尝试通过[JSONLint](http://jsonlint.com/)运行它,它会为你指出错误。 –
这就是说,相反,字符串应该是这样的: 'var string =“{'email':'[email protected]'}”'? – Wesley