序列化与JSON

序列化与JSON,第1张

在PHP应用中,序列和反序列化一般用做缓存,比如session缓存,cookie等。

序列化和反序列化在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字符串 *** 作示例


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/7320408.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存