JSON 是一種輕量級的文字資料交換格式,他比XML 更小、更快,更易解析,所以在PHP開發過程中,我們經常會用它來傳遞數據,本文UncleToo將個大家介紹一下PHP如何操作JSON資料
PHP操作JSON資料一般在AJAX中使用的比較多,可以將JSON格式的資料傳給AJAX,也可以將AJAX傳回的JSON資料解析成我們需要的字串。在PHP中可以使用 json_decode() 函數來解析JSON格式數據,使用 json_encode() 函數將字串(數組)產生JSON格式。
先看範例:
範例1:
Php程式碼
<?php $json = '{"a":1, "b":2, "c":3, "d":4, "e":5 }'; var_dump(json_decode($json)); echo "<br/>"; var_dump(json_decode($json,true)); ?>
輸出:
=object(stdClass)#1 (5) { ["a"]= int"( => int(2) ["c"]=> int(3) ["d"]=> int(4) ["e"]=> int(5) }
array(5) { ["a "]=> int(1) ["b"]=> int(2) ["c"]=> int(3) ["d"]=> int(4) ["e"]=> int( 5) }
範例2:
Php程式碼
<?php $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); echo json_encode($arr); ?>
輸出:
{"a":1,"b":2,"c":3," ":5}
從範例1我們可以看到,用json_decode函數可以將JSON資料轉換成數組,但是,如果JSON資料裡又嵌套了JSON數據,那就不能直接這樣寫了,這裡需要用自訂函數來實作將巢狀的JSON資料轉換成陣列。
範例:
Php程式碼
<?php function json_to_array($web){ $arr=array(); foreach($web as $k=>$w){ if(is_object($w)) $arr[$k]=json_to_array($w); //判断类型是不是object else $arr[$k]=$w; } return $arr; } ?>
呼叫範例:
Php程式碼
<?php $s='{"webname":"UncleToo","url":"www.uncletoo.com","menu":{"PHP":"1","DataBase":"2","Web":"3"}}'; $web=json_decode($s); $arr=json_to_array($web); print_r($arr); ?>
. [menu] => Array ( [PHP] => 1 [DataBase] => 2 [Web] => 3 ) )
以上就是PHP操作JSON資料的常用方法,大家如果有其他想法及方法可以跟UncleToo一起討論。