eval()和JSON.parse()的区别
我们将一个josn字符串解析为对象的时可以使用两种方法:
假设有一个json字符串:
'{
"student" : [
{"name":"zs","age":},
{"name":"ls","age":},
{"name":"ww","age":}
]
}'
然后解析为对象:
1、eval()代码如下:
var data = '{"student" : [{"name":"zs","age":17}, {"name":"ls","age":17},{"name":"ww","age":17}]}';
eval('(' + data + ')');
2、JSON.parse()代码如下:
var data = '{"student" : [{"name":"zs","age":17}, {"name":"ls","age":17},{"name":"ww","age":17}]}';
JSON.parse(data);
区别:JSON.parse()会检查给的字符串是否符合json格式,eval方法不会去检查;
var data = '{"student" : [{"name":"zs","age":17}, {"name":"ls","age":alert("hehe")},{"name":"ww","age":17}]}';
执行eval方法后会先弹出一个提示框输出hehe的字符串,
但是使用JSON.parse()就会报错~显示错误信息为当前字符串不符合json格式,即JSON.parse()方法会检查需要转换的字符串是否符合json格式
相比较而言eval方法是很危险的,还是推荐使用JSON.parse来实现json格式字符串的解析
eval()和JSON.parse()的区别的更多相关文章
- JavaScript的Eval与JSON.parse的区别
JavaScript的Eval与JSON.parse的区别 json的定义以及用法: JSON(JavaScript Object Notation)是一种轻量级的数据格式,采用完全独立于语言的文本格 ...
- eval、json.parse()的介绍和使用注意点
原文:eval.json.parse()的介绍和使用注意点 eval和json.parse的使用 eval:来源于官网 定义和用法 eval() 函数可计算某个字符串,并执行其中的的 JavaScri ...
- json.stringify()的妙用,json.stringify()与json.parse()的区别
一.JSON.stringify()与JSON.parse()的区别 最近做项目,发现JSON.stringify()使用场景真的挺多,我们都知道JSON.stringify()的作用是将 JavaS ...
- 解析JSON的两种方法eval()和JSON.parse()
解析JSON 一种方法是使用eval函数. var dataObj = eval("("+json+")"); 必须把文本包围在括号中,这样才能避免语法错误,迫 ...
- JSON.stringify()和JSON.parse()的区别
JSON.stringify()此方法用于将一个对象解析成字符串并返回. JSON.parse()此方法刚好相反是将一个字符串对象解析成一个JSON对象.
- python中eval()和json.loads的区别
一.最近在写接口测试脚本时,发现当读取Excel用例时,有时候要用eval,有时候又要用json.loads,不知道区别,只能换一下就可以用了,不知道其中的原理,特地百度了下.于是就记录了下,以便后续 ...
- JSON.parse()和eval()的区别
json格式非常受欢迎,而解析json的方式通常用JSON.parse()但是eval()方法也可以解析,这两者之间有什么区别呢? JSON.parse()之可以解析json格式的数据,并且会对要解析 ...
- JSON.parse与eval区别
两种方式都可以解析json字符串,不过有时候JSON.parse解析会失败,失败原因有多种,下面会指出一种. JSON.parse()解析json格式的数据,会对要解析的字符串进行格式检查,如果格式不 ...
- JSON.parse和eval()的区别
eval方法不检查给的字符串是否符合json的格式,parse会检查json语法格式. 比如一个json字符串data: { "a": 1, "b": &quo ...
随机推荐
- 爬虫 - 动态分页抓取 游民星空 的资讯 - bs4
# coding=utf-8 # !/usr/bin/env python ''' author: dangxusheng desc : 动态分页抓取 游民星空 的资讯 date : 2018-08- ...
- 【LeetCode每天一题】Edit Distance(编辑距离)
Given two words word1 and word2, find the minimum number of operations required to convert word1 to ...
- typeof 踩坑总结
typeof '123' == 'string' // true typeof ('123' == 'string' ) // "boolean" typeof 123 == N ...
- python装饰器扩展之functools.wraps
我们知道函数被装饰器,装饰后,所有的属性,以及内置函数就失效了. 原因是函数类型变成了warpper类型 示例1:不带wraps装饰器示例 def warfunc(func): def warpper ...
- #WEB安全基础 : HTTP协议 | 0x9 GET和POST请求以及请求URI的方式
请求URI的方式 1.URI为完整的请求URI GET http://hackr.jp/index.htm HTTP/1.1 2.在首部字段Host中写明域名或IP地址 GET/index.htm H ...
- Python--Virtualenv简明教程(转载https://www.jianshu.com/p/08c657bd34f1)
virtualenv is a tool to create isolated Python environments. virtualenv通过创建独立Python开发环境的工具, 来解决依赖.版本 ...
- Python学习笔记(Ⅰ)——Python程序结构与基础语法
作为微软的粉丝,最后终于向Python低头了,拖了两三个月终于下定决心学习Python了.不过由于之前受到C/C#等语言影响的思维定式,前期有些东西理解起来还是很费了些功夫的. 零.先抄书: 1.Py ...
- C# 循环时,操作另外一个进程直到操作完成,循环继续执行
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- css基础面试题
1 介绍一下标准的CSS的盒子模型?与低版本IE的盒子模型有什么不同的? 标准盒子模型:宽度=内容的宽度(content)+ border + padding + margin低版本IE盒子模型:宽度 ...
- 记自己利用hexo和github搭建个人博客的过程
--------------------------------------可能我书写的方式跟别人顺序不一样,但这是我的成功经验------------------------------------ ...