如何理解php json与xml序列化/反序列化
发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,本篇内容介绍了"如何理解php json与xml序列化/反序列化"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够
千家信息网最后更新 2025年02月03日如何理解php json与xml序列化/反序列化
本篇内容介绍了"如何理解php json与xml序列化/反序列化"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
在web开发中对象的序列化与反序列化经常使用,比较主流的有json格式与xml格式的序列化与反序列化,今天想写个jsop的小demo,结果发现不会使用php序列化,查了一下资料,做个笔记简单数组json格式序列化/反序列化
php提供了json_encode和json_decode函数对对象进行json格式序列化/反序列化操作
$data=array('Name'=>'Byron','Age'=>24,'Sex'=>'Male','Friends'=>array('Casper','Frank','Vincent')); $json=json_encode($data);//将数组序列化为json字符串 echo $json.'
'; $array_json= json_decode($json);//将json字符串反序列化为数组 while(list($key,$value)=each($array_json)){ if(!is_array($value)){ echo "$key: $value
"; }else{ echo "$key: "; foreach ($value as $current) { echo "$current "; } echo '
'; } }
简单数组xml格式序列化/反序列化
php提供wddx_serialize_value和wddx_deserialize函数对对象进行xml格式序列化/反序列化操作
$data=array('Name'=>'Byron','Age'=>24,'Sex'=>'Male','Friends'=>array('Casper','Frank','Vincent')); $xml=wddx_serialize_value($data);//把数组序列化为xml字符串 echo $xml.'
'; $array_xml=wddx_deserialize($xml);//把xml字符串反序列化为数组 while(list($key,$value)=each($array_xml)){ if(!is_array($value)){ echo "$key: $value
"; }else{ echo "$key: "; foreach ($value as $current) { echo "$current "; } echo '
'; } }
虽然由于HTML转码原因,输出格式很奇怪,但其实序列化的字符串是这样的
和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.'
'; $a=json_decode($json);//将json字符串反序列化为对象数组 foreach ($a as $aa) { echo $aa->name.'
'; }
可以看到序列化出来的字符串格式非常符合预期。复杂对象xml格式序列化/反序列化同样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字符串反序列化为对象数组 foreach ($a as $aa) { echo $aa->name.'
'; }
生成的xml字符串结构是这样的
"如何理解php json与xml序列化/反序列化"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
序列
数组
对象
格式
字符
字符串
复杂
内容
函数
字段
元素
时候
更多
知识
中包
输出
实用
学有所成
接下来
主流
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
铜山区党政机关网络安全
大学生对国家网络安全宣传周
网站服务器502
扬州银联软件开发管理方法
机械网络技术标准
cnki中国期刊网数据库
acdsee数据库
怎么向测试数据库导入表呢
紫微斗数软件开发
中国专利数据库文摘
细胞蛋白质组学数据库
近年网络安全大事件
政府各单位注重网络安全
个体户网络技术服务部
2019华为网络安全工程师待遇
数据库表结构设计的定义
剑三成女重置版数据库
一步画好网络安全手抄报
阿里巴巴arm 服务器
朔州软件开发设计
软件开发考证哪个大学好
青岛中兴网络技术有限公司
闵行区节能软件开发服务商有哪些
数据库的实施包括以下四项工作
公务员网络安全管理岗考试
济南手机应用软件开发
斐讯路由器服务器异常
哪个数据库不属于nosql
法制教育网络安全背景
深圳服务器机柜价格怎么样