首页 > 技术文章 > eval()

hpwd 2019-08-28 10:49 原文

{'width':100,'height':200};/*JS的对象 */
{"width":100,"height":200,"name":"rose"}; /*JSON格式的JavaScript对象 */
'{"width":100,"height":200,"name":"rose"}';/*JSON格式的字符串 */

由于 JSON 语法是 JavaScript 语法的子集,JavaScript 函数 eval() 可用于将 JSON 文本转换为 JavaScript 对象。

eval() 函数使用的是 JavaScript 编译器,可解析 JSON 文本,然后生成 JavaScript 对象。必须把文本包围在括号中,这样才能避免语法错误:

var obj = eval ("(" + txt + ")");

在网页中使用 JavaScript 对象:

var txt = '{ "sites" : [' + '{ "name":"a" , "url":"com" },' + '{ "name":"google" , "url":"com" },' + '{ "name":"微博" , "url":"com" } ]}';
 var obj = eval ("(" + txt + ")");

区别

Json

Javascript对象

含义

仅仅是一种数据格式

表示类的实例

传输

可以跨平台数据传输,速度快

不能传输

表现

1,键值对方式,键必须加双引号

2,值不能是方法函数,不能是undefined/NaN

1,键值对方式,键不加引号

2,值可以是函数、对象、字符串、数字、boolean 等

相互转换

Json转化为js对象:

1,JSON.parse(jsonstring);
(不兼容ie7)

 

2,Jsobj=eval("("+jsonstring+")");

(兼容所有浏览器,但不安全,会执行json里面的表达式?)

Js对象转换为Json:

JSON.stringify(jsobj);(不兼容ie7)

推荐阅读