茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    php處理json格式數(shù)據(jù)經(jīng)典案例總結(jié)
    來源:易賢網(wǎng) 閱讀:1300 次 日期:2016-08-20 14:02:20
    溫馨提示:易賢網(wǎng)小編為您整理了“php處理json格式數(shù)據(jù)經(jīng)典案例總結(jié)”,方便廣大網(wǎng)友查閱!

    本文實(shí)例總結(jié)了php處理json格式數(shù)據(jù)的方法。分享給大家供大家參考,具體如下:

    1.json簡(jiǎn)介:

    何為json?

    簡(jiǎn) 單地說,JSON 可以將 JavaScript 對(duì)象中表示的一組數(shù)據(jù)轉(zhuǎn)換為字符串,然后就可以在函數(shù)之間輕松地傳遞這個(gè)字符串,或者在異步應(yīng)用程序中將字符串從 Web 客戶機(jī)傳遞給服務(wù)器端程序.

    通俗點(diǎn)講,它是一種數(shù)據(jù)的存儲(chǔ)格式,就像php序列化后的字符串一樣。

    它也是一種數(shù)據(jù)描述,比如:我們將一個(gè)數(shù)組序列化后存放,就可以很容易的反序列化后應(yīng)用;json也是如此,只不過它搭建的是客戶端javascript和服務(wù)器端php交互的橋梁。

    如何使用json?

    自php5.2開始及之后的版本都內(nèi)置了json的支持,主要有兩個(gè)函數(shù):

    json_encode():編碼,生成一個(gè)json字符串

    json_decode():一個(gè)解碼

    注意:經(jīng)過json_encode()函數(shù)編碼后,將返回一個(gè)json格式的字符串,如:$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';將json格式的字符串輸出,將得到一個(gè)json格式的javascript對(duì)象

    2.json案例一:

    json_encode的使用:

    <?php

    $arr = array(

     'name' => '魏艷輝',

     'nick' => '為夢(mèng)翱翔,

     'contact' => array(

     'email' => 'zhuoweida@163.com',

     'website' => 'http://zhuoweida.blog.tianya.cn',

     )

    );

    $json_string = json_encode($arr);

    echo $json_string;//json格式的字符串

    ?>

    結(jié)果:

    {

       "name":"\u9648\u6bc5\u946b",

       "nick":"\u6df1\u7a7a",

       "contact":

           {

             "email":"shenkong at qq dot com",

             "website":"http:\/\/www.chinaz.com"

           }

    }

    提示:輸出的數(shù)據(jù)本身就是json格式的js對(duì)象,因?yàn)闆]有帶引號(hào),所以在前臺(tái)頁(yè)面可以直接將其當(dāng)做json對(duì)象使用

    總結(jié):關(guān)聯(lián)數(shù)組是按照javascript對(duì)象來構(gòu)造的

    分析:上述案例很簡(jiǎn)單的將一個(gè)數(shù)組json化了,需要指出的是在非utf-8編碼下,中文字符將不可被encode,結(jié)果會(huì)出來空值,所以如果你使用gb2312編碼編寫php代碼,那么就需要將包含中文的內(nèi)容使用iconv或mb系列函數(shù)轉(zhuǎn)化為utf-8后在json_encode

    3.json案例二:

    json_decode的使用:

    <?php

    $arr = array(

     'name' => '魏艷輝',

     'nick' => '為夢(mèng)翱翔',

     'contact' => array(

     'email' => 'zhuoweida@163.com',

     'website' => 'http://zhuoweida.blog.tianya.cn',

     )

    );

    $json_string = json_encode($arr);

    $obj = json_decode($json_string); //可以使用$obj->name訪問對(duì)象的屬性

    $arr=json_decode($json_string,true);//將第二個(gè)參數(shù)為true時(shí)將轉(zhuǎn)化為數(shù)組

    print_r($obj);

    print_r($arr);

    ?>

    結(jié)果:

    {

       "name":"\u9648\u6bc5\u946b",

       "nick":"\u6df1\u7a7a",

       "contact":

           {

            "email":"shenkong at qq dot com",

            "website":"http:\/\/www.chinaz.com"

           }

    }

    總結(jié):關(guān)聯(lián)數(shù)組是按照J(rèn)avaScript對(duì)象來構(gòu)造的

    提示:輸出的數(shù)據(jù)本身就是json格式的js對(duì)象,因?yàn)闆]有帶引號(hào),所以在前臺(tái)頁(yè)面可以直接將其當(dāng)做json對(duì)象使用

    分析:編碼后就要解碼,php提供了相應(yīng)的函數(shù)json_decode,執(zhí)行此函數(shù)后,將會(huì)得到一個(gè)對(duì)象或數(shù)組。

    4.json案例三:

    當(dāng)和前臺(tái)交互的時(shí)候,json的作用就顯示出來了:

    例如:javascript代碼如下:

    <script type="text/javascript">

    var obj = {

          "name":"\u9648\u6bc5\u946b",

          "nick":"\u6df1\u7a7a",

          "contact":

              {

               "email":"shenkong at qq dot com",

               "website":"http:\/\/www.chinaz.com"

              }

         };

         alert(obj.name);

    </script>

    代碼分析:上面代碼,直接將json格式數(shù)據(jù)賦給一個(gè)變量,它就變成一個(gè)javascript對(duì)象了,這樣我們可以很方便的對(duì)obj進(jìn)行遍歷

    提示:在javascript中,數(shù)組的訪問是通過索引來訪問的;對(duì)象屬性的訪問是通過 對(duì)象名.屬性名  來訪問的

    提示:輸出的數(shù)據(jù)本身就是json格式的js對(duì)象,因?yàn)闆]有帶引號(hào),所以在前臺(tái)頁(yè)面可以直接將其當(dāng)做json對(duì)象使用

    5.json案例四:json跨域的數(shù)據(jù)調(diào)用:

    例如:主調(diào)文件index.html

    <script type="text/javascript">

      function getProfile(str) {

          var arr = str;

          document.getElementById('nick').innerHTML = arr.nick;

      }

    </script>

    <body>

       <div id="nick"></div>

    </body>

    <script type="text/javascript" src="http://localhost/demo/profile.php"></script>

    例如:被調(diào)用文件profile.php

    <?php

    $arr = array(

      'name' => '魏艷輝',

        'nick' => '為夢(mèng)翱翔',

         'contact' => array(

             'email' => 'zhuoweida@163.com',

             'website' => 'http://zhuoweida.blog.tianya.cn',

          )

        );

    $json_string = json_encode($arr);

    echo "getProfile($json_string)";

    ?>

    代碼分析:當(dāng)index.html調(diào)用profile.php,json字符串生成,并作為參數(shù)傳入getProfile,然后將昵稱插入到div中 ,這樣一次跨域數(shù)據(jù)交互就完成了

    6.js如何解析服務(wù)器端返回的json字符串?

    我們?cè)谑褂胊jax做客戶端和服務(wù)器端交互的時(shí)候,在不適用jQuery等框架的前提下,一般的做法是讓服務(wù)器端返回一段json字符串,然后在客戶端將它解析成javascript對(duì)象。解析時(shí)用到的方法一般是eval或者是new function,而目前ie8和firefox3.1有內(nèi)置了原生的json對(duì)象。

    例1:

    var strTest='{"a":"b"}'; //轉(zhuǎn)換成JS對(duì)象

    var obj=eval("("+strTest+")") ;

    例2:

    function strtojson(strTest){

      JSON.parse(str);

    }

    7.案例五:對(duì)象的json化

    <?php

    //1.對(duì)象

    class JsonTest{

      var $id = 1;

      var $name = 'heiyeluren';

      $gender = '男';

    }

    $obj = new JsonTest;

    echo json_encode($obj)."<br /> ";

    ?>

    瀏覽器輸出結(jié)果:

    {

      "id":1,

      "name":"heiyeluren",

      "gender":"\u7537"

    }

    結(jié)論:對(duì)象的json字符串是按照javascript對(duì)象來構(gòu)造的。無法識(shí)別中文,所有的中文字符串沒有被正確顯示出來

    分析:上述案例很簡(jiǎn)單的將一個(gè)數(shù)組json化了,需要指出的是在非utf-8編碼下,中文字符將不可被encode,結(jié)果會(huì)出來空值,所以如果你使用gb2312編碼編寫php代碼,那么就需要將包含中文的內(nèi)容使用iconv或mb系列函數(shù)轉(zhuǎn)化為utf-8后在json_encode

    提示:輸出的數(shù)據(jù)本身就是json格式的js對(duì)象,因?yàn)闆]有帶引號(hào),所以在前臺(tái)頁(yè)面可以直接將其當(dāng)做json對(duì)象使用

    8.案例六:索引數(shù)組的json化

    <?php

    $arr1 = array(1, 'heiyeluren', '男');

    echo json_encode($arr1)."<br /> ";

    ?>

    瀏覽器輸出結(jié)果:

    [

      1,

      "heiyeluren",

      "\u7537"

    ]

    結(jié)論:純數(shù)字索引數(shù)組的json字符串是按照javascript能夠識(shí)別的數(shù)組來存儲(chǔ)的,而不是按照javascript能夠識(shí)別的對(duì)象來存儲(chǔ)的。無法識(shí)別中文,所有的中文字符串沒有被正確顯示出來

    分析:上述案例很簡(jiǎn)單的將一個(gè)數(shù)組json化了,需要指出的是在非utf-8編碼下,中文字符將不可被encode,結(jié)果會(huì)出來空值,所以如果你使用gb2312編碼編寫php代碼,那么就需要將包含中文的內(nèi)容使用iconv或mb系列函數(shù)轉(zhuǎn)化為utf-8后在json_encode

    9.案例七:關(guān)聯(lián)數(shù)組的json化

    <?php

    $arr2 = array("id"=>1, "name"=>'heiyeluren', "gender"=>'男');

    echo json_encode($arr2)."<br /> ";

    ?>

    瀏覽器輸出結(jié)果:

    {

      "id":1,

      "name":"heiyeluren",

      "gender":"\u7537"

    }

    結(jié)論:關(guān)聯(lián)索引數(shù)組的json字符串是按照javascript對(duì)象的形式來構(gòu)造的。無法識(shí)別中文,所有的中文字符串沒有被正確顯示出來

    分析:上述案例很簡(jiǎn)單的將一個(gè)數(shù)組json化了,需要指出的是在非utf-8編碼下,中文字符將不可被encode,結(jié)果會(huì)出來空值,所以如果你使用gb2312編碼編寫php代碼,那么就需要將包含中文的內(nèi)容使用iconv或mb系列函數(shù)轉(zhuǎn)化為utf-8后在json_encode

    提示:輸出的數(shù)據(jù)本身就是json格式的js對(duì)象,因?yàn)闆]有帶引號(hào),所以在前臺(tái)頁(yè)面可以直接將其當(dāng)做json對(duì)象使用

    10.案例八:對(duì)多維索引數(shù)組的進(jìn)行json化

    <?php

    $arr3 = array(array(1, 'heiyeluren', '男'), array(1, 'heiyeluren', '男'));

    echo json_encode($arr3)."<br /> ";?>

    瀏覽器輸出結(jié)果:

    [

      [1,"heiyeluren","\u7537"],

      [1,"heiyeluren","\u7537"]

    ]

    結(jié)論:多維數(shù)字索引數(shù)組的json字符串是按照javascript能夠識(shí)別的數(shù)組來存儲(chǔ)的。無法識(shí)別中文,所有的中文字符串沒有被正確顯示出來

    分析:上述案例很簡(jiǎn)單的將一個(gè)數(shù)組json化了,需要指出的是在非utf-8編碼下,中文字符將不可被encode,結(jié)果會(huì)出來空值,所以如果你使用gb2312編碼編寫php代碼,那么就需要將包含中文的內(nèi)容使用iconv或mb系列函數(shù)轉(zhuǎn)化為utf-8后在json_encode

    提示:輸出的數(shù)據(jù)可以直接將其當(dāng)做javascript數(shù)組使用

    11.案例九:對(duì)多維關(guān)聯(lián)數(shù)組的進(jìn)行json化

    <?php

    $arr4 = array(

      array("id"=>1, "name"=>'heiyeluren', "gender"=>'男'),

      array("id"=>1, "name"=>'heiyeluren', "gender"=>'男')

    );

    echo json_encode($arr4)."<br /> ";

    ?>

    瀏覽器輸出結(jié)果:

    [

      {"id":1,"name":"heiyeluren","gender":"\u7537"},

      {"id":1,"name":"heiyeluren","gender":"\u7537"}

    ]

    結(jié)論:多維關(guān)聯(lián)索引數(shù)組是按照外圍是JavaScript數(shù)組,中間的索引數(shù)組是對(duì)象。無法識(shí)別中文,所有的中文字符串沒有被正確顯示出來

    分析:上述案例很簡(jiǎn)單的將一個(gè)數(shù)組json化了,需要指出的是在非utf-8編碼下,中文字符將不可被encode,結(jié)果會(huì)出來空值,所以如果你使用gb2312編碼編寫php代碼,那么就需要將包含中文的內(nèi)容使用iconv或mb系列函數(shù)轉(zhuǎn)化為utf-8后在json_encode

    提示:輸出的數(shù)據(jù)可以直接將其當(dāng)做javascript數(shù)組使用

    12.案例十:json格式的javascript對(duì)象的創(chuàng)建

    json的格式與語(yǔ)法:

    var jsonobject=

    {

        //對(duì)象內(nèi)的屬性語(yǔ)法(屬性名與屬性值是成對(duì)出現(xiàn)的)

        propertyname:value,

        //對(duì)象內(nèi)的函數(shù)語(yǔ)法(函數(shù)名與函數(shù)內(nèi)容是成對(duì)出現(xiàn)的)

        functionname:function(){...;}

    };

    注意:

    ①jsonobject -- JSON對(duì)象名稱

    ②propertyname -- 屬性名稱

    ③functionname -- 函數(shù)名稱

    ④一對(duì)大括號(hào),括起多個(gè)"名稱/值"的集合

    ⑤屬性名或函數(shù)名可以是任意字符串,甚至是空字符串

    ⑥逗號(hào)用于隔開每對(duì)"名稱/值"對(duì)

    提示:

    ①在javascript中,數(shù)組的訪問是通過索引來訪問的; 對(duì)象屬性的訪問是通過 對(duì)象名.屬性名  來訪問的

    ②經(jīng)過json_encode()化而的數(shù)據(jù)都是js能夠識(shí)別的格式,而經(jīng)過json_decode()化的數(shù)據(jù)都是php能夠識(shí)別的格式,這一點(diǎn)大家心里要清楚

    ③經(jīng)過json_encode()化而輸出的數(shù)據(jù)都是json格式的javascript對(duì)象,在前臺(tái)可直接將其當(dāng)做js對(duì)象使用

    希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

    更多信息請(qǐng)查看網(wǎng)絡(luò)編程
    易賢網(wǎng)手機(jī)網(wǎng)站地址:php處理json格式數(shù)據(jù)經(jīng)典案例總結(jié)
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

    2026上岸·考公考編培訓(xùn)報(bào)班

    • 報(bào)班類型
    • 姓名
    • 手機(jī)號(hào)
    • 驗(yàn)證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
    工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
    云南網(wǎng)警備案專用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報(bào)警專用圖標(biāo)