JSON.parse和evel的区别

简介: JSON.parse和evel的区别

我们将一个字符串解析成json对象时可以使用两种方法:

假设我们有一个json格式的字符串:


‘{

“student” : [

{“name”:”鸣人”,”age”:17},

{“name”:”小樱”,”age”:17},

{“name”:”佐助”,”age”:17}

] }’


然后我们需要把它解析成json对象

1、eval()代码如下:


var data = ‘{“student” : [{“name”:”鸣人”,”age”:17}, {“name”:”小樱”,”age”:17},{“name”:”佐助”,”age”:17}]}’; eval(‘(’ + data +’)’);


2、JSON.parse()代码如下:


var data = ‘{“student” : [{“name”:”鸣人”,”age”:17}, {“name”:”小樱”,”age”:17},{“name”:”佐助”,”age”:17}]}’; JSON.parse(data);


区别:eval方法不会去检查给的字符串时候符合json的格式~同时如果给的字符串中存在js代码eval也会一并执行~比如如果上面的json格式的字符串改为:(注意加粗部分)

var data = ‘{“student” : [{“name”:”鸣人”,”age”:17},{“name”:”小樱”,”age”:alert(“hehe”)},{“name”:”佐助”,”age”:17}]}’;


此时执行eval方法后会先弹出一个提示框输出hehe的字符串~


但是使用JSON.parse()就会报错~显示错误信息为当前字符串不符合json格式~即JSON.parse()方法会检查需要转换的字符串是否符合json格式~


相比较而言eval方法是很危险的~特别是当涉及到第三方时我们需要确保传给eval的参数是我们可以控制的~不然里面插入比如window.location~指向一个恶意的连接~那叫叫天啦


从这个层面讲~还是推荐使用JSON.parse来实现json格式字符串的解析


目录
相关文章
|
7月前
|
JSON 自然语言处理 前端开发
【面试题】JSON.stringify 和fast-json-stringify有什么区别
【面试题】JSON.stringify 和fast-json-stringify有什么区别
104 1
|
7月前
|
XML JSON 数据格式
xml与JSON的区别
xml与JSON的区别
61 1
|
JavaScript 前端开发 Shell
NPM 自定义 package.json 中 scripts 命令(& 与 && 的区别,cross-env 的使用)
NPM 自定义 package.json 中 scripts 命令(& 与 && 的区别,cross-env 的使用)
311 0
|
7月前
|
JavaScript 前端开发 Shell
NPM 自定义 package.json 中 scripts 命令(& 与 && 的区别,cross-env 的使用)
NPM 自定义 package.json 中 scripts 命令(& 与 && 的区别,cross-env 的使用)
271 0
|
5月前
|
存储 JSON 数据格式
Python教程:json中load和loads的区别
【7月更文挑战第17天】在Python的`json`模块中, `load`与`loads`函数均用于JSON至Python对象的转换, 区别在于: - **`loads`**处理JSON格式的**字符串** 其中`data.json`文件内容为`{"name": "Bob", "age": 30}`。 简而言之, `loads`用于字符串, 而`load`用于文件对象。根据数据来源选择合适的方法。
130 5
|
7月前
|
XML JSON 前端开发
【Web 前端】XML和JSON的区别?
【4月更文挑战第22天】【Web 前端】XML和JSON的区别?
【Web 前端】XML和JSON的区别?
|
7月前
|
XML JSON 前端开发
初学者指南:JSON 和 XML 的区别
当我们讨论数据交换格式时,JSON(JavaScript对象表示法)和 XML(可扩展标记语言)无疑是最受欢迎的两种选择。这两者各有优点和缺点,根据具体的应用场景,选择合适的格式可以显著提高开发效率和系统性能。
|
7月前
|
存储 JSON NoSQL
MongoDB的文档存储格式BSON和JSON的区别
MongoDB的文档存储格式BSON和JSON的区别
|
7月前
|
XML JSON 安全
xml与json的区别
xml与json的区别
35 0
|
7月前
|
存储 JSON 安全
序列化模块pickle和json有什么区别
序列化模块pickle和json有什么区别
73 0

热门文章

最新文章