Rumah  >  Artikel  >  php教程  >  PHP JSON互转函数性能介绍

PHP JSON互转函数性能介绍

WBOY
WBOYasal
2016-06-13 11:10:111130semak imbas

json_encode数据到JSON
json_decode JSON到PHP变量的转换

这两个PHP JSON互转函数在使用Ajax诸如:jquery和Ext框架的时候显得尤为重要,Ext默认接受的数据就是JSON格式,而jquery如果让JSON接入之后就显得更加轻松和简洁。本文将用一个实例讨论一下PHP 的JSON数据函数在jquery中的应用。

Jquery做为一个轻量级的Ajax框架确实显得短小而精悍,比较适合Web编程的前台页面,更加适合和PHP结合。其中jquery中有一个方法是:$.getJSON,这个用来从服务器脚本页面取得JSON格式的数据的。我们按顺序来,首先建立一个名为json.php的PHP脚本,具体程序如下: 

<ol class="dp-xml">
<li class="alt"><span><span> </span><span class="tag"><span> ?php   </span></span></span></li>
<li><span>//创建一个联合数组,这里我们尽量真<br>实的模拟了一个从数据库中读取的记录   </span></li>
<li class="alt">
<span>$</span><span class="attribute">a</span><span>=</span><span class="attribute-value">array</span><span>('name'=</span><span class="tag">></span><span>'dog','sex'=</span><span class="tag">><br></span><span>'f','par'=</span><span class="tag">></span><span>array('li','wang','lian'));   </span>
</li>
<li>
<span>$</span><span class="attribute">b</span><span>=</span><span class="attribute-value">array</span><span>('name'=</span><span class="tag">></span><span>'pig','sex'=</span><span class="tag">><br></span><span>'m','par'=</span><span class="tag">></span><span>array('liv','wange','liang'));   </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">array</span><span class="attribute-value">array</span><span> = array(</span><span class="attribute">0</span><span>=</span><span class="tag">></span><span>$a,</span><span class="attribute">1</span><span>=</span><span class="tag">></span><span>$b);   </span>
</li>
<li><span>//将数组转化为一个json数据串   </span></li>
<li class="alt"><span>echo json_encode($array);   </span></li>
<li>
<span class="tag">?></span><span> </span>
</li>
</ol>

前台页面jquery代码:

<ol class="dp-xml">
<li class="alt"><span><span class="tag"><span> </span><span class="tag-name">script</span><span class="tag">></span><span>   </span></span></span></li>
<li><span>$(document).ready(function(){   </span></li>
<li class="alt"><span>$.getJSON(   </span></li>
<li><span>'json.php',   </span></li>
<li class="alt"><span>function(data){   </span></li>
<li>
<span>var </span><span class="attribute">content</span><span>=</span><span class="attribute-value">""</span><span>;   </span>
</li>
<li class="alt">
<span>for(var </span><span class="attribute">i</span><span>=</span><span class="attribute-value">0</span><span>;i</span><span class="tag"><span class="tag-name">data.length</span><span>;i++)<br>{//循环读取后台的取得的JSON数据   </span></span>
</li>
<li><span>content+=data[i].name;   </span></li>
<li class="alt">
<span>var </span><span class="attribute">par</span><span>=</span><span class="attribute-value">"排挡:"</span><span>;   </span>
</li>
<li>
<span>for(var </span><span class="attribute">j</span><span>=</span><span class="attribute-value">0</span><span>;j</span><span class="tag"><span class="tag-name">data</span><span>[i].par.<br>length;j++){//循环读取数据中的par集合   </span></span>
</li>
<li class="alt"><span>par+=data[i].par[j]+"、";   </span></li>
<li><span>}   </span></li>
<li class="alt">
<span>content+=par+"</span><span class="tag"><span class="tag-name">br</span><span class="tag">/></span><span>";   </span></span>
</li>
<li><span>}   </span></li>
<li class="alt"><span>alert(content);   </span></li>
<li><span>}   </span></li>
<li class="alt"><span>);   </span></li>
<li><span>});   </span></li>
<li class="alt"><span class="tag"><span> /script</span><span class="tag">></span><span>  </span></span></li>
</ol>

本例在循环读取数据的时候应用了js的基本流程控制for循环方法,在jquery中也提供了一个遍历方法each有兴趣的兄弟们可以自己了解一下这个方法,底层实现也是基于for循环的。
注意:json_encode json_decode两个PHP JSON互转函数是在PHP5.2之后才有的,早于此前的版本使用将会报一个找不到函数的错误!


Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn