手机版

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

时间:2021-11-15 来源:互联网 编辑:宝哥软件园 浏览:

web开发中经常用到对象的序列化和反序列化,主流的有json格式和xml格式。今天想写一个jsop的小演示,但是发现不能用php序列化。我查了数据。做笔记Simple array json格式序列化/反序列化php提供json_encode和json_decode函数来序列化/反序列化json格式的对象$ data=array ('name'=' Byron ',' age'=24,' sex '=' male ',' friends'=array ('Casper ',' Frank ')。$ JSON=JSON _ encode($ data);//将数组序列化为json字符串echo $json。br/';$ array _ JSON=JSON _ decode($ JSON);//将json字符串反序列化为数组while (list ($ key,$ value)=每个($ array _ JSON)) {if(!is _ array($ value)){ echo ' $ key : $ value br/';} else { echo ' $ key:foreach($ value as $ current){ echo ' $ current ';} echo“br/”;} }image

简单数组xml格式的序列化/反序列化php提供wddx_serialize_value和wddx_serialize函数来序列化/反序列化xml格式的对象。$ data=array ('name'=' Byron ',' age'=24,' sex '=' male ',' friends'=array ('Casper ',)。$ XML=wddx _ serialize _ value($ data);//将数组序列化为xml字符串echo $xml。br/';$ array _ XML=wddx _ deserize($ XML);//将xml字符串反序列化为数组while (list ($ key,$ value)=每个($ array _ XML)) {if(!is _ array($ value)){ echo ' $ key : $ value br/';} else { echo ' $ key:foreach($ value as $ current){ echo ' $ current ';} echo“br/”;} }image

虽然由于HTML代码转换,输出格式非常奇怪,但是序列化后的字符串实际上是这样的image

与json格式相比,有更多的字段。复杂对象以json格式序列化/反序列化。很多时候,我们操作的时候,处理的对象不是简单的数组,而是我们自己对象的数组。json_encode和json_decode也可以胜任。自定义对象类Me { public $ name公共$ age公众$ friendsfunction __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。br/';$ a=JSON _ decode($ JSON);//将json字符串反序列化为对象数组foreach ($ a as $ aa) {echo $ aa-name。br/';}image

您可以看到序列化的字符串格式非常符合预期。复杂对象xml格式序列化/反序列化同样,wddx_serialize_value和wddx_serialize函数也可以对复杂对象执行xml格式序列化/反序列化操作。以刚才的对象为例:$ me1=newme ('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。br/';$ a=wddx _ deserize($ XML);//将xml字符串反序列化为对象数组foreach ($ a as $ aa) {echo $ aa-name。br/';}image

生成的xml字符串结构如下image

最后,当我开始使用php时,我的文章中有很多谬误。希望大家批评指正。

版权声明:php json和xml序列化/反序列化是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。