`
mengtaohj
  • 浏览: 23627 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

json.parse()和eval的区别

    博客分类:
  • js
 
阅读更多

json.parse()可以将字符串转换成对象。但是eval同样也可以。这样就让我们有所疑问了,他们有什么区别哪?

那就让小白给你们讲解一下。

第一:eval是不安全的。如果恶意的用户在json字符串中注入了向页面插入木马链接的脚本,用eval也是可以操作的,

第二:erval什么字符串都可以解析,这样是不好的吧。。。自己想想就知道为什么不好了。

总结:

JSON.parse()之可以解析json格式的数据,并且会对要解析的字符串进行格式检查,如果格式不正确则不进行解析,而eval()则可以解析任何字符串,eval是不安全的。

 比如下面的字符串:

var str ='alert(1000.toString())';eval(str);
JSON.parse(str);

用eval可以解析,并且会弹出对话框,而用JSON.parse()则解析不了。 其实alert并没有什么坏处,可怕的是如果用恶意用户在json字符串中注入了向页面插入木马链接的脚本,用eval也是可以操作的,而用JSON.parse()则不必担心这个问题。

分享到:
评论

相关推荐

    JSON2.JS JSON.JS JSON_PARSE.JS

    json_parse.js: This file contains an alternative JSON parse function that uses recursive descent instead of eval. json_parse_state: This files contains an alternative JSON parse function that uses a ...

    JSON中key动态设置及JSON.parse和JSON.stringify()的区别

    本文给大家介绍JSON中key动态设置及JSON.parse和JSON.stringify()的区别讲解,具体详情如下所示: var user_info_json = []; user_info_json[user_info_json.length] = eval('('+ '{'+ id +': '+ value +'}' +...

    JSON在Javascript中的使用(eval和JSON.parse的区别)详细解析

    主要介绍了JSON在Javascript中的使用以及eval和JSON.parse的区别详细解析,本文对eval()和JSON.parse()的区别介绍的非常详细,需要的朋友可以参考下

    net.sf.json.JSONObject所需的jar包

    在JavaScript端,可以使用`eval()`或`JSON.parse()`函数将接收到的JSON字符串转换回JavaScript对象,从而继续处理数据。 总结一下,`net.sf.json.JSONObject`库是Java开发中一个实用的工具,它简化了Java和...

    json.js和使用示例

    总结来说,`json.js`是一个针对IE6的JSON兼容库,它实现了JSON.parse和JSON.stringify方法,使得在不支持JSON的旧版浏览器中也能进行JSON数据的序列化和反序列化。这个库的使用极大地扩展了JSON在旧浏览器中的适用性...

    javascript中JSON.parse()与eval()解析json的区别

    主要介绍了javascript中JSON.parse()与eval(...解析json的区别,详细描述了json格式数据的操作技巧,并结合实例形式对比分析了使用JSON.parse()与eval()解析json的区别,需要的朋友可以参考下

    转义字符(\)对JavaScript中JSON.parse的影响概述

    按照ECMA262第五版中的解释,JSON是一个提供了stringify和parse方法的内置对象,前者用于将js对象转化为符合json标准的字符串,后者将符合json标准的字符串转化为js对象。json标准参考<a>json.org。(其实将符合json...

    深入浅析JSON.parse()、JSON.stringify()和eval()的作用详解

    JSON.parse()、JSON.stringify()和eval()是JavaScript中处理数据和字符串的三个重要函数,每个都有其特定的用途和优势。下面将详细探讨这三个函数的作用。 首先,JSON.parse()是用于将JSON格式的字符串转换成...

    js代码-JSON.PARSE

    了解和熟练使用JSON.parse()对于任何JavaScript开发者来说都是至关重要的。 在JavaScript中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它采用完全独立于语言的文本格式,但也使用了类似于C...

    list集合转换为json对象.doc

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在JavaScript中,我们可以方便地进行JSON与JavaScript数据结构之间的转换。 1. **JS对象转JSON** ...

    json的介绍 以及 json2.js的用法

    最常用的是使用 `eval()` 函数和内置的 `JSON.parse()` 方法。 ##### 使用 `eval()` 函数 `eval()` 函数可以直接将字符串形式的JSON转换为JavaScript对象。例如: ```javascript var myJSONtext = '{"bindings": ...

    js下用eval生成JSON对象.docx

    总的来说,虽然`eval()`和`new Function()`在某些场景下能快速解析JSON,但为了代码的安全性和性能考虑,推荐使用`JSON.parse()`。在实际开发中,应当遵循最佳实践,避免使用可能导致安全问题的`eval()`。

    json字符串和js对象之间的转换

    理解并熟练掌握`JSON.parse` 和 `JSON.stringify` 以及它们与jQuery相关方法的区别,对于处理JSON数据至关重要。在实际应用中,应优先考虑使用内置的`JSON.parse` 和 `JSON.stringify` 方法,以确保代码的兼容性和...

    javascript-stringify:将Stringify更改为eval,将JSON.stringify更改为JSON.parse。

    字符串化是eval作为JSON.stringify是JSON.parse 。 安装 npm install javascript-stringify --save 用法 import { stringify } from "javascript-stringify" ; 该API与JSON.stringify类似: value转换为字符串的...

    字符串转换成json 的三种方式

    在Chrome浏览器中,`JSON.parse`还有一些特殊的实现细节,这些可能会影响特定场景下的性能和行为,开发者应当了解并根据需求进行适配。 总结,将字符串转换为JSON对象时,首选的、最安全的方法是使用`JSON.parse`...

Global site tag (gtag.js) - Google Analytics