序列化和反序列化在PHP中用得不算多,在Java语言中用得比较多。其实你有没有发现,这种把一个对象或者数组的变量转化成字符串的方式,json也可以做到。
使用json来实现对象和字符串之间的转换,在PHP中显得更加直观和轻便。而且经过测试,使用json_encode()比serialize()方法更加快速,大概快2~3倍。
在我看来,序列化和反序列化是一种传输抽象数据的思想。通过定义序列化和反序列化的规则,我们可以实现将PHP中的对象序列化成字节流,然后传输给别的语言或者系统使用,这在远程调用里面非常的方便。
如下所示:<?php
//php反编码解析json信息
//json_decode(json字符串)
$city
=
array('shandong'=>'jinan','henan'=>'zhengzhou','hebei'=>'shijiazhuang')
$jn_city
=
json_encode($city)
//反编码json
$fan_city
=
json_decode($jn_city,false)//第二个参数false则返回object类型,false可以默认不写
var_dump($fan_city)//object(stdClass)#1
(3)
{
["shandong"]=>
string(5)
"jinan"
["henan"]=>
string(9)
"zhengzhou"
["hebei"]=>
string(12)
"shijiazhuang"
}
echo
"<br
/>"
$fan_city
=
json_decode($jn_city,true)//第二个参数true则返回array类型
var_dump($fan_city)//array(3)
{
["shandong"]=>
string(5)
"jinan"
["henan"]=>
string(9)
"zhengzhou"
["hebei"]=>
string(12)
"shijiazhuang"
}
手动写的JSON字符串一定要用单引号才能成功反序列化成对象/数组:
<?php
//json信息反编码
//不同php版本,对“纯json字符串”解析存在问题
//使用双引号定义的json字符串反编码 *** 作变为null
//$jn
=
"{'name':'tom','age':'20','addr':'beijing'}"
//$fan_jn
=
json_decode($jn,true)
//var_dump($fan_jn)//NULL
//使用单引号定义的json字符串反编码 *** 作会成功
$jn
=
'{"name":"tom","age":"20","addr":"beijing"}'
$fan_jn
=
json_decode($jn,true)
var_dump($fan_jn)
以上这篇JSON
PHP中,Json字符串反序列化成对象/数组的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:C#实现JSON字符串序列化与反序列化的方法jquery序列化form表单使用ajax提交后处理返回的json数据js解析与序列化json数据(二)序列化探讨Json序列化和反序列化方法解析Jquery
组合form元素为json格式,asp.net反序列化jQuery实现form表单元素序列化为json对象的方法浅析JSON序列化与反序列化JS实现json的序列化和反序列化功能示例js解析与序列化json数据(三)json的解析探讨JavaScript实现的反序列化json字符串 *** 作示例
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)