JSON.stringify(),JSON.parse(),eval(string)
JSON.stringify()用于从一个对象解析出字符串 :
var obj = {"name":"week","age":"200"};
console.log(JSON.stringify(obj));
// 结果:{"name":"week","age":"200"};
console.log(typeof JSON.stringify(obj));
// 结果:string
2.JSON.parse()用于从一个字符串中解析出json对象 :
var str = '{"name":"week","age":"200"}';
console.log(JSON.parse(str));
// 结果:Object {name: "week", age: "200"};
console.log(typeof JSON.parse(str));
// 结果:object
【注】单引号在外,里面应该用双引号,否则报错(3.html:16 Uncaught SyntaxError: Unexpected identifier);双引号在外,里面应该用单引号
3.eval(string)
语法说明:
1
2
3
|
eval()函数可计算某个字符串,并执行其中的的JavaScript代码。 如果参数是一个表达式,eval() 函数将执行表达式。如果参数是Javascript语句,eval()将执行 Javascript 语句。 string:必需。要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句。 |
var obj = '{"name":"week","age":200}';
var evalobj=eval('('+obj+')');
console.log(evalobj);
// 结果:Object {name: "week", age: 200}
console.log(typeof evalobj);
// 结果:object
解释:
1
|
加上圆括号的目的:是迫使eval函数,在处理JavaScript代码的时候,强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行 |
4.JSON.parse()和eval(string),两者的区别
var value = 1;
var jsonstr = '{"data1":"hello","data2":++value}';
var data1 = eval('('+jsonstr+')');console.log(data1);//这时value值为2
var data2=JSON.parse(jsonstr);console.log(data2);//报错
结果:
|
eval在解析字符串时,会执行该字符串中的代码(这样的后果是相当恶劣的), 如上例中,由于用eval解析一个json字符串而造成原先的value的值改变这是极其不安全的, 很容易被恶意的用户在json字符串注入木马链接。 所以推荐使用JSON.parse()来解析字符串。 该方法不仅可以捕捉JSON中的语法错误,并且允许你传入一个函数,用来过滤或转换解析结果
|
JSON.stringify(),JSON.parse(),eval(string)的更多相关文章
- JSON.stringify(),JSON.parse(),toJSON()使用方法总结
今天在看<你不知道的javascript-中>第四章‘强制类型转换’的时候,发现JSON.stringify(),JSON.parse(),toJSON()有很多细节,自己也就总结测试了一 ...
- JSON.stringify()的使用--将string转换成json
===========================================================1. ====JSON.stringify()================== ...
- JSON.stringify & JSON.parse 简析
以前用到JSON的场景也不少,但是没有仔细的研究过,这几天趁着一个需求用到了,就整理了一下相关用法. 一. JSON.stringify() 1. 语法 JSON.stringify(value[, ...
- JSON.stringify(),JSON.parse(),toJSON()方法使用
JSON.stringify(),将value(Object,Array,String,Number...)序列化为JSON字符串 JSON.parse(), 将JSON数据解析为js原生值 ...
- JSON stringify and parse
来源 : http://javascript.ruanyifeng.com/stdlib/date.html //解析json也可以传入一个方法, 基本上和stringify差不多,不过是逆序的, 要 ...
- JSON.stringify() / JSON.parse()
JSON.stringify() 这个方法可以把javascript对象转换成json字符串. JSON.parse() 这个方法可以把 json 字符串转换成 javascript对象. [下面来看 ...
- JSON.stringify,JSON.parse方法
var obj={name:'zhangsan',age:'18'};/** js对象--->JSON字符串* JSON.stringify(js对象) --转化为--> JSON字符串* ...
- 解决IE6 IE7 JSON.stringify JSON 未定义问题
在项目中引入json2.js 官方http://www.json.org/ 源码地址:https://github.com/douglascrockford/JSON-js $.ajax({ url: ...
- JSON.stringify()、JSON.parse()和eval(string)
1.JSON.stringify()用于从一个对象解析出字符串,eg: var obj = {"name":"奔跑的蜗牛","age":&q ...
随机推荐
- UTC时间和各个地区的时间到底是怎么回事
就不分析了,直接写结论 1.同一个时间点全球各地的时间戳是一致的 2.同一个时间戳在不同的时区对应不同的时间 依北京时间为例: 当前时间为 Tue Jan 23 2018 19:02:11 GMT ...
- Hive 基本操作
1.创建一个表 (字段表名不加引号‘,分隔符需要加引号) create table t1( id int ,name string ,hobby array<string> ,add ma ...
- JS实现HTML打印机效果
5月最近在学Django,所以所有的Demo都没有PO出去 <!DOCTYPE html> <html lang="en"> <head> &l ...
- Linux后台开发应该具备技能
一.linux和os: 1.命令:netstat tcpdump ipcs ipcrm 这四个命令的熟练掌握程度基本上能体现实际开发和调试程序的经验 2.cpu 内存 硬盘 等等与系统性能调试相关的命 ...
- React-setState源码的理解
首先举一个最简单的例子: this.state={ a:1 } this.setState({ a:2 }) console.log(this.state.a)//1 可以说setState()操作是 ...
- 【codeforces 743E】Vladik and cards
[题目链接]:http://codeforces.com/problemset/problem/743/E [题意] 给你n个数字; 这些数字都是1到8范围内的整数; 然后让你从中选出一个最长的子列; ...
- DQL查询语句使用(select)
9)DQL查询语句使用 SELECT语句在PL/SQL中使用,必须 采用下面用法: select id INTO 变量 from t001 where id=5; 将记录字段 ...
- POJ 1286
Burnside定理. 可以用Euler函数优化. #include <iostream> #include <cstdio> #include <cstring> ...
- mybatis和hibernate的区别【转】
第一章 Hibernate与MyBatisHibernate 是当前最流行的O/R mapping框架,它出身于sf.net,现在已经成为Jboss的一部分. Mybatis 是另外一种优秀的 ...
- Android中Handler原理
Handler主要是主线程和子线程通信.一般子线程中做一些耗时操作做完之后通知主线程来改动UI. 实际上android系统在Activity启动或者状态变化等都是通过Handler机制实现的. 首先进 ...