手机
当前位置:查字典教程网 >编程开发 >php教程 >PHP6 先修班 JSON实例代码
PHP6 先修班 JSON实例代码
摘要:它是基於JavaScriptProgrammingLanguage,StandardECMA-2623rdEdition-December1...

它是基於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,type,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,type,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">

<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" xml:lang="zh-tw" lang="zh-tw" >

<head>

<title>Json範例</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);

//上一篇簡介中使用過

</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>

經過簡單的演練後

相信大家對JSON這玩意有更深一層的瞭解

當然JSON的應用不只是範例中那麼簡單

有興趣一起研究吧

【PHP6 先修班 JSON实例代码】相关文章:

php遍历CSV类实例

PHP4中实现动态代理

PHP中的事务使用实例

PHP教程:清除wordpress里恶意代码

PHP设计模式之适配器模式代码实例

php使用GD实现颜色渐变实例

PHP+MYSQL中文乱码问题

PHP滚动日志的代码实现

PHP生成器简单实例

PHP curl使用实例

精品推荐
分类导航