给定一个JSON数据字符串,如何安全地将该字符串转换为JavaScript对象?
显然,我可以使用以下内容来不安全地执行此操作:
var obj = eval("(" + json + ')');
但这使我很容易受到包含其他代码的JSON字符串的影响,简单地对其求值似乎非常危险。
发布于 2011-04-16 19:45:22
只要您能保证一个相当现代的浏览器,JSON.parse(jsonString)
就是一种纯粹的JavaScript方法。
发布于 2013-12-16 07:26:32
使用“JSON.parse()”中的简单代码示例:
var jsontext = '{"firstname":"Jesper","surname":"Aaberg","phone":["555-0100","555-0120"]}';
var contact = JSON.parse(jsontext);
并颠倒过来:
var str = JSON.stringify(arr);
发布于 2013-04-29 15:37:17
这似乎就是问题所在:
通过Ajax websocket等接收的输入,它将是字符串格式,但您需要知道它是否是JSON.parsable
。问题是,如果你总是通过JSON.parse
运行它,程序可能会“成功”地继续运行,但你仍然会在控制台中看到一个带有可怕的"Error: unexpected token 'x'"
的错误抛出。
var data;
try {
data = JSON.parse(jqxhr.responseText);
} catch (_error) {}
data || (data = {
message: 'Server error, please retry'
});
https://stackoverflow.com/questions/45015
复制相似问题