首頁  >  文章  >  後端開發  >  php json與xml序列化/反序列化

php json與xml序列化/反序列化

高洛峰
高洛峰原創
2017-01-20 09:19:161729瀏覽

在web開發中物件的序列化與反序列化經常使用,比較主流的有json格式與xml格式的序列化與反序列化,今天想寫個jsop的小demo,結果發現不會使用php序列化,查了一下資料,做個筆記簡單數組json格式序列化/反序列化

php提供了json_encode和json_decode函數對物件進行json格式序列化/反序列化操作

$data=array('Name'=>'Byron','Age'=>24,'Sex'=>'Male','Friends'=>array('Cas

php json与xml序列化/反序列化

簡單數組xml格式序列化/反序列化

php提供wddx_serialize_value和wddx_deserialize函數對物件進行xml格式序列化/反序列化操作

$data=array('Name'=>'Byron','Age'=>24,'Sex'=>'Male','Friends'=>array('Cas

php json与xml序列化/反序列化

雖然由於HTML轉碼原因,輸出格式很奇怪,但其實序列化的字串是這樣的

php json与xml序列化/反序列化

和json格式相比較的話,多出來不少字段
複雜對象json格式序列化/反序列化很多時候我們在進行操作的時候,處理的對象並不是簡單數組,而是我們自定義的一個對象的數組,json_encode和json_decode也是可以勝任的。自訂一個和上面數組內容類似的物件

class Me { public $name; public $age; public $friends; function __construct($name,$age,$friends) { 
$this->name=$name; $this->age=$age; $this->friends=$friends; } }
$me1=new Me('Byron',24,array('Casper','Frank','Vincent')); 
$me2=new Me('Casper',25,array('Byron','Frank','Vincent')); 
$me3=new Me('Frank',26,array('Casper','Byron','Vincent')); 
//创建一个复杂的数组,子元素是自定义类,自定义类中包含数组字段 
$array_me=array($me1,$me2,$me3); $json=json_encode($array_me);
//序列化对象数组为json字符串 echo $json.&#39;<br/>&#39;; $a=json_decode($json);
//将json字符串反序列化为对象数组 foreach ($a as $aa) { echo $aa->name.&#39;<br/>&#39;; }

 php json与xml序列化/反序列化

可以看到序列化出來的字串格式非常符合預期。複雜物件xml格式序列化/反序列化同樣wddx_serialize_value與wddx_deserialize函數也能勝任複雜物件進行xml格式序列化/反序列化操作,使用剛才的物件做範例

$me1=new Me(&#39;Byron&#39;,24,array(&#39;Casper&#39;,&#39;Frank&#39;,&#39;Vincent&#39;)); 
$me2=new Me(&#39;Casper&#39;,25,array(&#39;Byron&#39;,&#39;Frank&#39;,&#39;Vincent&#39;)); 
$me3=new Me(&#39;Frank&#39;,26,array(&#39;Casper&#39;,&#39;Byron&#39;,&#39;Vincent&#39;)); 
//创建一个复杂的数组,子元素是自定义类,自定义类中包含数组字段 
$array_me=array($me1,$me2,$me3); $xml=wddx_serialize_value($array_me);
//序列化对象数组为xml字符串 echo $xml.&#39;<br/>&#39;; 
$a=wddx_deserialize($xml);
//将xml字符串反序列化为对象数组 
foreach ($a as $aa) { echo $aa->name.&#39;<br/>&#39;; }

php json与xml序列化/反序列化

產生的xml字串結構是這樣的

php json与xml序列化/反序列化

最後初學php,文章多有謬誤,希望大家批評指正。

更多php json與xml序列化/反序列化相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn