php json與xml序列化 反序列化

2021-09-07 10:07:50 字數 2653 閱讀 3392

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

$data=array('name'=>'byron','age'=>24,'***'=>'male','friends'=>array('casper','frank','vincent'));

$json=json_encode($data);//

將陣列序列化為json字串

echo

$json.'

';

$array_json= json_decode($json);//

將json字串反序列化為陣列

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

$data=array('name'=>'byron','age'=>24,'***'=>'male','friends'=>array('casper','frank','vincent'));

$xml=wddx_serialize_value($data);//

把陣列序列化為xml字串

echo

$xml.'

';

$array_xml=wddx_deserialize($xml);//

把xml字串反序列化為陣列

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

和json格式相比較的話,多出來不少字段

很多時候我們在進行操作的時候,處理的物件並不是簡單陣列,而是我們自定義的乙個物件的陣列,json_encode和json_decode也是可以勝任的。自定義乙個和上面陣列內容類似的物件

class

me

}

$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.'

';

$a=json_decode($json);//

將json字串反序列化為物件陣列

可以看到序列化出來的字串格式非常符合預期。

同樣wddx_serialize_value和wddx_deserialize函式也能勝任複雜物件進行xml格式序列化/反序列化操作,使用剛才的物件做例子

$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

);

$xml=wddx_serialize_value($array_me);//

序列化物件陣列為xml字串

echo

$xml.'

';

$a=wddx_deserialize($xml);//

將xml字串反序列化為物件陣列

xml序列化與反序列化

序列化是將物件狀態轉換為可保持或傳輸的格式的過程。與序列化相對的是反序列化,它將流轉換為物件。這兩個過程結合起來,可以輕鬆地儲存和傳輸資料。序列化的目的 1 以某種儲存形式使自定義物件持久化 2 將物件從乙個地方傳遞到另乙個地方。net framework 提供兩種序列化技術 二進位制序列化保持型別...

XML序列化與反序列化(續)

前段時間寫了乙個關於xml序列化和反序列化的 最近突然發現乙個問題,就是當xml節點值為空時,序列化後的xml節點會是這種形式的。但是我們如果需要這種形式的該如何寫呢。先看看 吧 工具類和測試物件 public class xmltextwritertest xmltextwriter public...

序列化與反序列化成XML

現在xml都普遍的用到了很多地方,它的平台無關 方便 結構化 適用性的特點讓人不得不去接受它,在c 中的序列化中也有提到將物件轉換成xml格式然後進行傳遞,去支援其他的平台或程式,昨天小小的研究了一下乙個東東 首先如果要用到序列化物件到xml,請先引入命名空間 using system.xml.se...