它是基於JavaScript Programming Language,Standard ECMA-262 3rd Edition - December 1999的一個子集 JSON 主要利用了成對的 {} 來包住各個object(物件),用成對的 [] 來包各個array(陣列), 用成對的 "" 來包住各字串,用逗號來區隔各變數而資料型態有 string,number,array,object 下面簡單的JSON格式,敘述了一個 object json 擁有一個成員變數,這個成員變數中有含有三個物件 复制内容到剪贴板代码: 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']} ] }; 如此,我們可以獲得一個叫做 json 的Object,而這個json Object中包含一個獨立的成員 query 而query包含一個Array ,這個Array中又含了三個Object,前面二個Object含有三個成員 id,type,title,而最後一個Object array 包含一個陣列,如此解釋還明白吧? 但是要怎麼用呢? 很簡單 alert('I have ' +json.query.length + ' object.'); //alert I have 3 object. alert('type='+json.query[1].type+'rntitle'+json.query[1].title); //alert type=b title=JSON 全稱 JavaScript Object Notation alert('陣列索引3='+json.query[2].array[3]); //alert 陣列索引3=D 這樣操作資料時更簡便,不需要和複雜的DOM打交道,所需要的資料可以很輕鬆的取得 例如上面的例子 json.query[ i ].title 如此就可以取得第i筆的title內含的值 PHP的發展是很迅速,當程式界對JSON還一知半解時或者全然不知何為JSON時 PHP已經在最新的版本5.2.0中納入核心,並且預設狀態是啟用,相較於其他的Script語言 PHP可謂一馬當先,在5.2.0版本中為JSON實作了兩個函數 json_decode() 和 json_encode() 前者是將JSON格式的字串還原成PHP原生的陣列 後者則是將PHP原生陣列編譯成JSON格式的字串 不過,由於Javascript支援Unicode,如果在存取資料庫時使用非Ascii的字元,如中、日、韓 需要將字元編碼轉換成UTF8,不然經過json_encode()後的字串會是亂碼 ======================================================== 經過上一篇簡單介紹JOSN後 本篇就來實作如何使用JOSN 下面範例使用需要使用MySQL4.1以上版本 編碼全程採用utf8 承接上一篇的資料格式,表中共有三個欄位id,title 資料表規格如下 复制内容到剪贴板代码: 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; 复制内容到剪贴板代码: <?php //建立連線 $conn = mysqli_connect("localhost",'root','')or die('連不上資料庫'); //選擇資料庫 mysqli_select_db($conn,'mydata') or die('不能選資料庫'); //設定連線編碼規則,不懂上google找 mysqli_query($conn,'SET NAMES 'utf8''); //取出資料 $results = mysqli_query($conn,'SELECT id,title FROM news'); //Josn字串 $json = ''; //因為是範例,所以自行控制迴圈 $i=0; while($row = mysqli_fetch_assoc($results)) { $i++; $json .= json_encode($row); //資料表中只放三筆資料,所以在第三筆時不需要在尾巴加上 ",",記得,最後一筆資料不用加上"," if ($i<3) { $json .= ","; } } //將資料包進陣列中 $json = '{"query":[ '.$json.']}';?> <!doctype html public "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Json範例 <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); //上一篇簡介中使用過 還原Json <?php //將字串解碼 $s_JSON_Decoded = json_decode($json,true); //取回資料 foreach ($s_JSON_Decoded as $row) { foreach ($row as $rowa) { echo $rowa['title']." "; } } ?> 經過簡單的演練後 相信大家對JSON這玩意有更深一層的瞭解 當然JSON的應用不只是範例中那麼簡單 有興趣一起研究吧 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|