jzm17173 发表于 2013-1-4 02:42:43

【json】♣一

<div id="cnblogs_post_body"><div class="cnblogs_code"><!DOCTYPE html><html lang="zh-CN"><head>    <meta charset="utf-8" />    <title></title></head><body>    <script>      var data1 = '{"title": "西西里岛", "id": 17946}';// 这是JSON字符串 必须是双引号      var data2 = {"title": "西西里岛", "id": 17946};// 这是对象字面量 不是什么JSON对象      var data3 = '[{"title": "西西里岛", "id": 17946}, {"title": "巴塞罗那", "id": 17947}]';      var data4 = [{"title": "西西里岛", "id": 17946}, {"title": "巴塞罗那", "id": 17947}];      var data5 = '{"data": [{"resource": {"id": 136910, "typeName": "景点"}, "dream": {"title": "巴塞罗那"}, "lovedCount": 0}, {"resource": {"id": 136909,"typeName": "景点"}, "dream": {"title": "巴塞罗那"}, "lovedCount": 0}], "hasNext": true}';      var data1_obj = JSON.parse(data1);// 这是JSON对象 在新版的浏览器里JSON对象已经被原生的内置对象了。测试了IE,IE6IE7不支持IE8支持      var data1_str = JSON.stringify(data1_obj);// 这是JSON字符串      console.log(data1_obj);      console.log(data1_str);      //console.log(eval(data1));// SyntaxError: invalid label 无效的标签      console.log(eval('('+data1+')'));// {}语句块 ({})表达式      console.log(eval(data3)[0].title);      // 对于服务器返回的JSON字符串,如果jquery异步请求将type设为“json”,或者利用$.getJSON()方法获得服务器返回,那么就不需要eval()方法了,因为这时候得到的结果已经是json对象了,只需直接调用该对象即可      // eval()方法是动态执行其中字符串(可能是js脚本)的,这样很容易造成系统的安全问题      console.log((new Function('return ' + data1))());    </script></body></html>
页: [1]
查看完整版本: 【json】♣一