JSON可以解釋為“JavaScript的對象表示方法”,也就是說JSON的概念是來源于JavaScript的,對于WEB開發(fā)模式來說,下面這個(gè)圖大家肯定很熟悉:
由此可以看到,客戶端瀏覽器和服務(wù)器端腳本需要交換數(shù)據(jù)。對于小數(shù)據(jù)或無格式數(shù)據(jù),直接用簡單的POST和GET用字符串方法提交過去就可以,但是一些大型的數(shù)據(jù),最好使用有格式的方法交換,比如JSON和XML。
JSON是什么?
JSON一種用于在互聯(lián)網(wǎng)絡(luò)中傳輸超量數(shù)據(jù)的數(shù)據(jù)交換格式。雖然在Internet中交換數(shù)據(jù)XML占主要地位,然而JSON卻更加的簡單并且適用于輕型的數(shù)據(jù)。
盡管JSON當(dāng)初是被JavaScript發(fā)明并且用于訪問遠(yuǎn)程數(shù)據(jù)的,它現(xiàn)在卻被廣泛適用于各種語言,因?yàn)镴SON是一種于平臺(tái)無關(guān)的數(shù)據(jù)格式。
JSON數(shù)據(jù)的數(shù)據(jù)類型和實(shí)例
JSON支持各種各樣的數(shù)據(jù)類型,包括數(shù)字、字符串、布爾值、數(shù)組數(shù)據(jù)甚至對象數(shù)據(jù)(是一個(gè)集合,每個(gè)元素都是鍵:值對形式,使用逗號分隔,并且使用大括號包裹)。
讓我們看一個(gè)JSON數(shù)據(jù)的簡單例子,該例子表示一個(gè)雇員的詳細(xì)信息:
{“id”:”1″,”name”:”mike”,”country”:”usa”,”office”:[“microsoft”,”oracle”]}
使用PHP創(chuàng)建和解析JSON數(shù)據(jù)的方法
PHP從5.2.0版本以后提供了Json擴(kuò)展來處理JSON數(shù)據(jù),通過PHP有兩個(gè)函數(shù)json_encode和json_decode非常方便的對JSON數(shù)據(jù)進(jìn)行轉(zhuǎn)換和解析。
首先,讓我們看一段PHP用數(shù)組創(chuàng)建如上各式的JSON的代碼:
$json_data=array('id'=>1,'name'=>"mike",'country'=>'usa',"office"=>array("microsoft","oracle"));
echojson_encode($json_data);
該代碼直接產(chǎn)生了JSON數(shù)據(jù)。現(xiàn)在讓我們用PHP將上面的JSON解碼:
$json_string='{"id":1,"name":"mike","country":"usa","office":["microsoft","oracle"]} ';
$obj=json_decode($json_string);
現(xiàn)在變量$obj包含了使用PHP解析后的JSON數(shù)據(jù),你可以使用以下的方法來輸出和訪問:
echo$obj->name;//displays mike
echo$obj->office[0];//displays microsoft
你猜的沒錯(cuò)$obj->office是一個(gè)數(shù)組,你能夠使用PHP的foreach方法遍歷它:
foreach($obj->officeas$val)
echo$val;