`
accpzgp
  • 浏览: 14582 次
  • 性别: Icon_minigender_1
  • 来自: 天津
最近访客 更多访客>>
社区版块
存档分类
最新评论

eval和JSON

 
阅读更多

由于Ajax的兴起,JSON这种轻量级的数据格式作为客户端与服务器之间的传输格式逐渐地流行起来,进而出现的问题是如何将服务器端构建好的 JSON数据转化为可用的JavaScript对象。利用eval函数无疑是一种简单而直接的方法。

在转化的时候需要将JSON字符串的外面包装一层圆括号:var jsonObject = eval("(" + jsonFormat + ")");

为什么要加括号?

加上圆括号的目的是迫使eval函数在评估JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行。

举一个例子,例如对象字面量{},如若不加外层的括号,那么eval会将大括号识别为 JavaScript代码块的开始和结束标记,那么{}将会被认为是执行了一句空语句。

所以下面两个执行结果是不同的:
alert(eval("{}"); // return undefined
alert(eval("({})");// return object[Object]

分享到:
评论

相关推荐

    javascript eval和JSON

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON基于JavaScript的一个子集,使用键值对的形式来存储数据,其结构可以是对象或者数组。 JSON的...

    巧用eval解析json对象

    本篇将聚焦于如何巧妙地使用`eval`函数来解析JSON对象,虽然在实际开发中,由于安全考虑我们通常会避免使用`eval`,但理解其工作原理对于学习JavaScript和JSON解析至关重要。 首先,JSON对象本质上是符合JSON语法的...

    javascript eval和JSON之间的联系

    如果您想详细了解eval和JSON请参考以下链接: eval :https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Functions/Eval JSON:http://www.json.org/ eval函数的工作原理 eval函数会评估一个...

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

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

    javascript中eval解析JSON字符串

    总的来说,虽然eval函数具有一定的灵活性和强大功能,但在处理JSON字符串时,更推荐使用专门设计的JSON.parse()方法。如果确实需要使用eval函数,应当格外注意安全性问题,并确保传入的字符串是可控的、安全的,同时...

    javascript中eval解析JSON字符串.docx

    尽管`eval()`可以用于解析JSON字符串,但它存在一些明显的缺点和安全问题: 1. **安全性**:直接执行字符串中的任意代码是非常危险的,因为这可能导致XSS攻击。 2. **性能**:`eval()`的执行速度通常比原生的`JSON....

    js下用eval生成JSON对象.docx

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

    js使用eval解析json(js中使用json)

    JavaScript中的`eval()`...综上所述,尽管`eval()`在某些场景下可以用于解析JSON,但为了安全和性能,推荐使用`JSON.parse()`。在编写JavaScript代码时,应尽量避免使用`eval()`,除非你完全了解它的行为和潜在风险。

    JS中Eval解析JSON字符串的一个小问题

    在处理JSON字符串时,通常有两种方法将其转换为JavaScript对象:`JSON.parse()`和`eval()`函数。`JSON.parse()`是现代浏览器内置的方法,专门用于解析JSON字符串,它是安全且推荐的解析方式。然而,在一些老版本或者...

    js使用eval解析json实例与注意事项分享

    虽然eval的使用带来了灵活性,但也伴随着风险和注意事项,特别是在解析JSON格式的数据时。 首先,需要理解JSON是一种轻量级的数据交换格式,它的语法简单明了,易于人阅读和编写,同时也易于机器解析和生成。JSON与...

    js下用eval生成JSON对象

    除了`eval()`和`JSON.parse()`之外,还可以使用`new Function()`方法来实现类似的功能。这种方法相对更加安全,因为其只允许执行传入的字符串作为代码,而不会执行全局上下文中的其他代码。下面是一个示例: ```...

    JS使用eval解析JSON的注意事项分析

    在JavaScript中,解析JSON数据通常涉及两种主要方法:使用`eval()`函数和使用`JSON.parse()`(在现代浏览器中)。本文主要关注使用`eval()`解析JSON的注意事项,尤其是在结合jQuery进行异步请求的情况下。 首先,让...

    eval 加密和解密

    在JavaScript中,`eval`通常用于处理JSON对象,因为JSON.stringify()方法会将JavaScript对象转换成一个JSON格式的字符串,而JSON.parse()则能将这个字符串解析回JavaScript对象。但出于安全考虑,直接使用`eval`解析...

    jquery eval解析JSON中的注意点介绍

    在处理JSON数据时,有几种方法可以解析JSON字符串成为JSON对象,包括使用eval()函数和使用jQuery内置的方法。 首先,使用eval()函数解析JSON字符串。eval()是一个强大的JavaScript函数,它可以执行字符串中的任何...

    JSON2.JS JSON.JS JSON_PARSE.JS

    json2.js: This file creates a JSON property in the global object, if there isn't already one, setting its value to an object containing a stringify method and a parse method. The parse method uses ...

    eval-json-path:EvaluateQuery给定路径下json对象的值

    eval-json-path 评估/查询给定路径下json对象的值 通常,可以通过属性名称或索引来访问js对象变量。 该模块允许按字符串给出的路径/步骤进行访问 用法 const evalJsonPath = require ( 'eval-json-path' ) const ...

Global site tag (gtag.js) - Google Analytics