首先知道json字符串和json对象分别长啥样:
例如:json字符串: '{"id":1,"name":"张三"}' json对象:{"id":2,"name":"李四"}
然后来看看eval和parse的区别:
前者是将json格式的字符串转化为json对象,必须满足标准的json格式。而后者是将字符串当作是js代码来执行,其中eval的适用范围更广,且不需要标准的json格式就能转,但效率不高。
然后来看运行效果
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script type="text/javascript">
var json1 = '{"id":1,"name":"张三"}';//json字符串
console.debug(json1);
var json2 = {"id":2,"name":"李四"};//创建一个json对象
console.debug(json2);
console.debug("=================================================");
//把json字符串转为json对象 方式1:使用eval
var json3 = eval("("+json1+")");
console.debug(json3);
console.debug("=================================================");
//把json字符串转为json对象 方式2: JSON.parse(jsonStr);
var json4 = JSON.parse(json1);
console.debug(json4);
console.debug("=================================================");
var json5="{'username':'王五','age':26}";
var json6 = eval("("+json5+")");// eval不需要标准的json格式能转
console.debug(json6);
var json7 = JSON.parse(json5);// 如果parse想把json字符串转为json对象,必须满足标准的json格式
console.debug(json7);
</script>
</head>
<body>
</body>
</html>
运行结果为: