首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >安全地将JSON字符串转换为对象

安全地将JSON字符串转换为对象
EN

Stack Overflow用户
提问于 2008-09-05 00:12:02
回答 19查看 1.4M关注 0票数 1.4K

给定一个JSON数据字符串,如何安全地将该字符串转换为JavaScript对象?

显然,我可以使用以下内容来不安全地执行此操作:

代码语言:javascript
复制
var obj = eval("(" + json + ')');

但这使我很容易受到包含其他代码的JSON字符串的影响,简单地对其求值似乎非常危险。

EN

回答 19

Stack Overflow用户

回答已采纳

发布于 2011-04-16 19:45:22

只要您能保证一个相当现代的浏览器,JSON.parse(jsonString)就是一种纯粹的JavaScript方法。

票数 2.1K
EN

Stack Overflow用户

发布于 2013-12-16 07:26:32

使用“JSON.parse()”中的简单代码示例:

代码语言:javascript
复制
var jsontext = '{"firstname":"Jesper","surname":"Aaberg","phone":["555-0100","555-0120"]}';
var contact = JSON.parse(jsontext);

并颠倒过来:

代码语言:javascript
复制
var str = JSON.stringify(arr);
票数 76
EN

Stack Overflow用户

发布于 2013-04-29 15:37:17

这似乎就是问题所在:

通过Ajax websocket等接收的输入,它将是字符串格式,但您需要知道它是否是JSON.parsable。问题是,如果你总是通过JSON.parse运行它,程序可能会“成功”地继续运行,但你仍然会在控制台中看到一个带有可怕的"Error: unexpected token 'x'"的错误抛出。

代码语言:javascript
复制
var data;

try {
  data = JSON.parse(jqxhr.responseText);
} catch (_error) {}

data || (data = {
  message: 'Server error, please retry'
});
票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档