欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP6 先修班 JSON實(shí)例代碼

 更新時(shí)間:2008年08月23日 20:54:45   作者:  
先簡(jiǎn)單的談一下什麼是 JSON JSON 全稱 JavaScript Object Notation是一種非常輕量級(jí)的資料交換格式
它是基於JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一個(gè)子集
JSON 主要利用了成對(duì)的 {} 來(lái)包住各個(gè)object(物件),用成對(duì)的 [] 來(lái)包各個(gè)array(陣列),
用成對(duì)的 "" 來(lái)包住各字串,用逗號(hào)來(lái)區(qū)隔各變數(shù)而資料型態(tài)有 string, number, array, object

下面簡(jiǎn)單的JSON格式,敘述了一個(gè) object json 擁有一個(gè)成員變數(shù),這個(gè)成員變數(shù)中有含有三個(gè)物件

復(fù)制內(nèi)容到剪貼板代碼:
var json = {
'query' : [
{'id':'1','type':'a','title':'PHP 5.2.0 的新功能 JSON decoder & encoder'},
{'id':'2','type':'b','title':'JSON 全稱 JavaScript Object Notation'},
{'array': ['A', 'B','C', 'D', 'E']}
]
};
如此,我們可以獲得一個(gè)叫做 json 的Object,而這個(gè)json Object中包含一個(gè)獨(dú)立的成員 query
而query包含一個(gè)Array ,這個(gè)Array中又含了三個(gè)Object,前面二個(gè)Object含有三個(gè)成員
id,type,title,而最後一個(gè)Object array 包含一個(gè)陣列,如此解釋還明白吧?

但是要怎麼用呢?
很簡(jiǎn)單
alert('I have ' +json.query.length + ' object.');
//alert I have 3 object.
alert('type='+json.query[1].type+'\r\ntitle'+json.query[1].title);
//alert type=b title=JSON 全稱 JavaScript Object Notation
alert('陣列索引3='+json.query[2].array[3]);
//alert 陣列索引3=D

這樣操作資料時(shí)更簡(jiǎn)便,不需要和複雜的DOM打交道,所需要的資料可以很輕鬆的取得
例如上面的例子 json.query[ i ].title 如此就可以取得第i筆的title內(nèi)含的值
PHP的發(fā)展是很迅速,當(dāng)程式界對(duì)JSON還一知半解時(shí)或者全然不知何為JSON時(shí)
PHP已經(jīng)在最新的版本5.2.0中納入核心,並且預(yù)設(shè)狀態(tài)是啟用,相較於其他的Script語(yǔ)言
PHP可謂一馬當(dāng)先,在5.2.0版本中為JSON實(shí)作了兩個(gè)函數(shù) json_decode() 和 json_encode()
前者是將JSON格式的字串還原成PHP原生的陣列
後者則是將PHP原生陣列編譯成JSON格式的字串
不過(guò),由於Javascript支援Unicode,如果在存取資料庫(kù)時(shí)使用非Ascii的字元,如中、日、韓
需要將字元編碼轉(zhuǎn)換成UTF8,不然經(jīng)過(guò)json_encode()後的字串會(huì)是亂碼
========================================================
經(jīng)過(guò)上一篇簡(jiǎn)單介紹JOSN後
本篇就來(lái)實(shí)作如何使用JOSN
下面範(fàn)例使用需要使用MySQL4.1以上版本
編碼全程採(cǎi)用utf8
承接上一篇的資料格式,表中共有三個(gè)欄位id,type,title
資料表規(guī)格如下
復(fù)制內(nèi)容到剪貼板代碼:
CREATE TABLE `news` (
`id` int(10) unsigned NOT NULL auto_increment,
`type` varchar(255) NOT NULL default '',
`title` varchar(64) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
復(fù)制內(nèi)容到剪貼板代碼:
<?php
//建立連線
$conn = mysqli_connect("localhost", 'root', '')or die('連不上資料庫(kù)');
//選擇資料庫(kù)
mysqli_select_db($conn,'mydata') or die('不能選資料庫(kù)');
//設(shè)定連線編碼規(guī)則,不懂上google找
mysqli_query($conn,'SET NAMES 'utf8'');
//取出資料
$results = mysqli_query($conn,'SELECT id,type,title FROM news');
//Josn字串
$json = '';
//因?yàn)槭枪?fàn)例,所以自行控制迴圈
$i=0;
while($row = mysqli_fetch_assoc($results))
{
$i++;
$json .= json_encode($row);
//資料表中只放三筆資料,所以在第三筆時(shí)不需要在尾巴加上 ",",記得,最後一筆資料不用加上","
if ($i<3)
{
$json .= ",";
}

}
//將資料包進(jìn)陣列中
$json = '{"query":[ '.$json.']}';?>
<!doctype html public "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" xml:lang="zh-tw" lang="zh-tw" >
<head>
<title>Json範(fàn)例</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="-1" />
<meta http-equiv="Cache-Control" content="no-cache" />
<meta name="generator" content="mamba" />
</head>
<body>
<script type="text/javascript">
var json = <?php echo $json?>;
alert('I have ' +json.query.length + ' object.');
alert('type='+json.query[1].type+'rntitle'+json.query[1].title);
//上一篇簡(jiǎn)介中使用過(guò)
</script>
還原Json<br>
<?php
//將字串解碼
$s_JSON_Decoded = json_decode($json,true);
//取回資料
foreach ($s_JSON_Decoded as $row)
{
foreach ($row as $rowa)
{
echo $rowa['title']."<br>";
}

}
?>
</body>
</html>
經(jīng)過(guò)簡(jiǎn)單的演練後
相信大家對(duì)JSON這玩意有更深一層的瞭解
當(dāng)然JSON的應(yīng)用不只是範(fàn)例中那麼簡(jiǎn)單
有興趣一起研究吧

相關(guān)文章

  • ajax返回值中有回車換行、空格的解決方法分享

    ajax返回值中有回車換行、空格的解決方法分享

    這篇文章介紹了ajax返回值中有回車換行、空格的解決方法,有需要的朋友可以參考一下
    2013-10-10
  • 解析thinkphp的左右值無(wú)限分類

    解析thinkphp的左右值無(wú)限分類

    本篇文章是對(duì)thinkphp的左右值無(wú)限分類進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • PHP校驗(yàn)ISBN碼的函數(shù)代碼

    PHP校驗(yàn)ISBN碼的函數(shù)代碼

    最近在編寫一個(gè)圖書(shū)管理程序的時(shí)候,需要校驗(yàn)圖書(shū)ISBN碼正確性,查了一些資料,了解了圖書(shū)ISBN碼的構(gòu)成。
    2011-01-01
  • php查詢相似度最高的字符串的方法

    php查詢相似度最高的字符串的方法

    這篇文章主要介紹了php查詢相似度最高的字符串的方法,涉及php操作字符串及數(shù)組實(shí)現(xiàn)相似度算法的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • php5.6.x到php7.0.x特性小結(jié)

    php5.6.x到php7.0.x特性小結(jié)

    這篇文章主要介紹了php5.6.x到php7.0.x特性,總結(jié)分析了php5.6.x到php7.0.x各種常用特性及新增特性,以及相關(guān)使用技巧,需要的朋友可以參考下
    2019-08-08
  • php筆記之:AOP的應(yīng)用

    php筆記之:AOP的應(yīng)用

    你以前聽(tīng)說(shuō)過(guò)AOP(Aspect Oriented Programming)嗎?雖然在php方面,好像沒(méi)有過(guò)多的使用,但是在企業(yè)級(jí)開(kāi)發(fā)中,AOP被廣泛使用。我將借此文,向大家介紹PHP方面的AOP
    2013-04-04
  • PHP精確計(jì)算功能示例

    PHP精確計(jì)算功能示例

    這篇文章主要介紹了PHP精確計(jì)算功能,結(jié)合實(shí)例形式分析了php進(jìn)行針對(duì)加減乘除等數(shù)學(xué)運(yùn)算的精確方法,涉及bcadd、bcsub、bcmul、bcdiv等函數(shù)的使用技巧,需要的朋友可以參考下
    2016-11-11
  • jQuery ajax+PHP實(shí)現(xiàn)的級(jí)聯(lián)下拉列表框功能示例

    jQuery ajax+PHP實(shí)現(xiàn)的級(jí)聯(lián)下拉列表框功能示例

    這篇文章主要介紹了jQuery ajax+PHP實(shí)現(xiàn)的級(jí)聯(lián)下拉列表框功能,涉及php結(jié)合jQuery的$.get方法動(dòng)態(tài)交互實(shí)現(xiàn)省市二級(jí)聯(lián)動(dòng)下拉列表框相關(guān)操作技巧,需要的朋友可以參考下
    2019-02-02
  • PHP簡(jiǎn)單實(shí)現(xiàn)斷點(diǎn)續(xù)傳下載的方法

    PHP簡(jiǎn)單實(shí)現(xiàn)斷點(diǎn)續(xù)傳下載的方法

    這篇文章主要介紹了PHP實(shí)現(xiàn)斷點(diǎn)續(xù)傳下載的方法,涉及php針對(duì)文件傳輸?shù)南嚓P(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-09-09
  • php獲取開(kāi)始與結(jié)束日期之間所有日期的方法

    php獲取開(kāi)始與結(jié)束日期之間所有日期的方法

    這篇文章主要介紹了php獲取開(kāi)始與結(jié)束日期之間所有日期的方法,涉及php針對(duì)日期與時(shí)間的相關(guān)運(yùn)算技巧,需要的朋友可以參考下
    2016-11-11

最新評(píng)論