中国最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2

json教程

  • 关于 JSON
  • JSON 教程

    json格式

    JSON解析

    JSON遍历

    JSON调用

    JSON转换

    JSON获取

    JSON字符串

    JSON数组

    JSON 数据解析的3种方式

    阅读 (2600)

    概述

    现在JSON格式在web开发中越来越受重视,特别是在使用ajax开发项目的过程中,经常需要将json格式的字符串返回到前端,前端解析成JS对象(JSON )。
    ECMA-262(E3)中没有将JSON概念写到标准中,还好在 ECMA-262(E5)中JSON的概念被正式引入了,包括全局的JSON对象和Date的toJSON方法。
    解析JSON数据的三种方法


    eval()方法

    解析JSON数据的最常用方法是使用javascript的eval()方法,代码如下:

    代码如下:
    function toJson(str){
     var json = eval('(' + str + ')');
     return json;
    }

    该方法存在性能和安全方面的问题,不建议使用。


    new Function方法
    代码如下:
    function toJson(str){
     var json = (new Function("return " + str))();
     return json;
    }

    JSON.parse()方法
    这种方法只支持IE8/Firefox3.5+/Chrome4/Safari4/Opera10 以上版本,这些浏览器都已经接近W3C标准,默认实现了toJSON方法。
    代码如下:
    function toJson(str){
     return JSON.parse(str);
    }

    json2.js会在浏览器原生支持JSON.parse的时候选用原生版本,而且它跟ES5是API兼容的。在ES5还没完全普及的现状下,John Resig大神推荐用json2.js主要是为了现在就能用跟ES5兼容的API,日后能平滑过渡到ES5——只要去掉一个import就换过来了。


    javascript解析json实例详解

    下载json库
    http://www.json.org/json-zh.html自己找javascript的
    或者直接去下面的
    https://github.com/douglascrockford/JSON-js
     
    php生成json格式


    使用页面 

    代码如下:

    <script src="scripts/json.js"></script>  
    alert(data.toJSONString());
    如果返回false说明没数据
     

    js 代码 

    代码如下:

    functionshowJSON() {   
       varuser =   
         {   
           "username":"tom",   
           "age":20,   
            "info": {"tel":"123456","cellphone":"98765"},   
          "address":   
           [   
                    {"city":"shanghai","postcode":"201203"},   
                     {"city":"suzhou","postcode":"200000"}   
                 ]   
         }   
           
         alert(user.username);   
         alert(user.age);   
         alert(user.info.cellphone);   
         alert(user.address[0].city);   
         alert(user.address[0].postcode);   
    }

    修改 

    代码如下:

    user.username ="jerry";
    

    可以使用eval来转换JSON字符到Object 

    代码如下:

    functionmyEval() {   
        varstr = '{"name":"Violet","occupation":"character"}';   
        varbj = eval('(' + str + ')');   
         alert(obj.toJSONString());   
    }
    或者使用parseJSON()方法
    代码如下:
    functionmyEval() {   
        varstr = '{"name":"Violet","occupation":"character"}';   
        varbj = str.parseJSON();   
         alert(obj.toJSONString());   
    }
    关闭
    程序员人生