JSON解析
第一种方式JSON.parse
$.ajax({ "url":"result/json1.php", "type":"post", "success":function (data) { //①将JSON形式的字符串变为对象(JSON) var json = JSON.parse(data); $("h1").html(json.info); } }) var obj = { "name":"哈哈", "age":12 } console.log(typeof obj); console.log( typeof JSON.stringify(obj));
第二种方式
概述:eval()是系统默认的函数,是作为window对象的一个方法、因此可以省略window直接使用;
eval()这个函数很‘变态’;可以将字符串真的变为语义层面上的代表;
$.ajax({ "url":"result/json1.php", "type":"post", "success":function (data) { var json = eval("("+data+")"); console.log(typeof json); $("h1").html(json.name); } });
eval("function fun(){console.log('我是一个函数')};fun();")
提示:①eval()可以将字符串转换为咱们语义上的代码的含义
②eval(‘(‘+data+’)’);
第三种方式
$.ajax({ "url":"result/json1.php", "type":"post", "success":function (data) { var json = Function("return"+data)(); $("h1").html(json.ceo); } });
提示:①JSON它是系统内置的对象、eval()它也是系统内置的函数可以将字符串转换为语义;
Function系统内置的构造函数,我们也可以拿过来直接使用
json练习
result/json1.php <?php $arr = array("name"=>"百度","info"=>"上市公司","ceo"=>"老板","age"=>30); //将数组转换为JSON返回给前端 print_r(json_encode($arr)); ?> <h1></h1> <script type="text/javascript"> $.ajax({ "url":"result/json1.php", "type":"post", "success":function (data) { /* ① 将JSON形式的字符串变为对象(JSON) var json = JSON.parse(data); $("h1").html(json.info); console.log(data); ② var json = eval("("+data+")"); $("h1").html(json.name); console.log(typeof json); console.log(json); eval("function fun(){console.log('我是一个函数')};fun();") ③ var json = Function("return"+data)(); $("h1").html(json.ceo); console.log(json); */ } }); </script>