它是基於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 '',
複製內容到剪貼簿代碼:
//建立連線內容$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 {
$json .= ",";
}
}
//將資料包入陣列中
$json = '{"query":[ '.$json .' ]}';?>
還原Json
/ /將字串解碼
$s_JSON_Decoded = json_decode($json,true);
///取回資料
foreach ($s_JSON_Decoded as $row)
{
foreach ($row as $rowa)
{
echo $rowa['title']."
" ;
}
}
?>
經過簡單的演練後
相信大家對JSON這玩意有更深一層的了解
當然JSON的應用不只是範例中那麼簡單
有興趣一起研究吧
以上就介紹了everest ultimate edition PHP6 先修班 JSON實例代碼,包含了everest ultimate edition方面的內容,希望對PHP教程有興趣的朋友有所幫助。