PHP JSON互轉(zhuǎn)函數(shù)性能介紹
PHP語(yǔ)言被業(yè)內(nèi)人士評(píng)為性能強(qiáng)大的一款計(jì)算機(jī)語(yǔ)言,許多程序員都采用它來(lái)作為網(wǎng)站開(kāi)發(fā)建設(shè)的基礎(chǔ)語(yǔ)言。鑒于JSON的嬌小性和通用性,PHP在5.2的版本之后,默認(rèn)加上一組針對(duì)數(shù)據(jù)進(jìn)行的PHP JSON互轉(zhuǎn)函數(shù): #t#
json_encode數(shù)據(jù)到JSON
json_decode JSON到PHP變量的轉(zhuǎn)換
這兩個(gè)PHP JSON互轉(zhuǎn)函數(shù)在使用Ajax諸如:jquery和Ext框架的時(shí)候顯得尤為重要,Ext默認(rèn)接受的數(shù)據(jù)就是JSON格式,而jquery如果讓JSON接入之后就顯得更加輕松和簡(jiǎn)潔。本文將用一個(gè)實(shí)例討論一下PHP 的JSON數(shù)據(jù)函數(shù)在jquery中的應(yīng)用。
Jquery做為一個(gè)輕量級(jí)的Ajax框架確實(shí)顯得短小而精悍,比較適合Web編程的前臺(tái)頁(yè)面,更加適合和PHP結(jié)合。其中jquery中有一個(gè)方法是:$.getJSON,這個(gè)用來(lái)從服務(wù)器腳本頁(yè)面取得JSON格式的數(shù)據(jù)的。我們按順序來(lái),首先建立一個(gè)名為json.php的PHP腳本,具體程序如下:
- < ?php
- //創(chuàng)建一個(gè)聯(lián)合數(shù)組,這里我們盡量真
實(shí)的模擬了一個(gè)從數(shù)據(jù)庫(kù)中讀取的記錄- $a=array('name'=>'dog','sex'=>
'f','par'=>array('li','wang','lian'));- $b=array('name'=>'pig','sex'=>
'm','par'=>array('liv','wange','liang'));- $arrayarray = array(0=>$a,1=>$b);
- //將數(shù)組轉(zhuǎn)化為一個(gè)json數(shù)據(jù)串
- echo json_encode($array);
- ?>
前臺(tái)頁(yè)面jquery代碼:
- < script>
- $(document).ready(function(){
- $.getJSON(
- 'json.php',
- function(data){
- var content="";
- for(var i=0;i<data.length;i++)
{//循環(huán)讀取后臺(tái)的取得的JSON數(shù)據(jù)- content+=data[i].name;
- var par="排擋:";
- for(var j=0;j<data[i].par.
length;j++){//循環(huán)讀取數(shù)據(jù)中的par集合- par+=data[i].par[j]+"、";
- }
- content+=par+"<br/>";
- }
- alert(content);
- }
- );
- });
- < /script>
本例在循環(huán)讀取數(shù)據(jù)的時(shí)候應(yīng)用了js的基本流程控制for循環(huán)方法,在jquery中也提供了一個(gè)遍歷方法each有興趣的兄弟們可以自己了解一下這個(gè)方法,底層實(shí)現(xiàn)也是基于for循環(huán)的。
注意:json_encode json_decode兩個(gè)PHP JSON互轉(zhuǎn)函數(shù)是在PHP5.2之后才有的,早于此前的版本使用將會(huì)報(bào)一個(gè)找不到函數(shù)的錯(cuò)誤!