2016 - 2024

感恩一路有你

json序列化和反序列化方法 博途序列化指令?

浏览量:2460 时间:2023-04-21 18:56:59 作者:采采

博途序列化指令?

PHP s serialize是将变量序列化,返回一个具有变量类型和结构的字符串表达式,而JSON是一种更轻便、更友好的接口数据交换格式(AJAX、REST等。),两者都以字符串的形式体现数据结构。

1目的

Serialize主要用于序列化php,并将其存储在文件或数据库中。

Json_encode序列化主要用于与其他语言交互。对于传输来说,json有很多优势。

2内容

序列化序列化后的字符串包含额外的内容,即值的类型和长度的编码。

Json_encode只包含键值。

serialize后的内容比json_encode后的内容长。

3对象序列化

在解码json_decode的时候,请注意,如果是序列化的数值数组,json_decode可以恢复到原来的数组。但是,如果它是一个关联数组(或者一个对象),json_decode可以 t确定它是一个关联数组还是一个对象,所以json_decode在默认情况下将被恢复到stdclass的一个对象,如果第二个参数为true,它将被恢复到一个关联数组。

4对象方法

Json_encode无法序列化对象的成员方法。

序列化后,unserialize反序列化的数据可以再次调用成员方法,但json_decode可以 t,将会报告一个错误。

5 _ _睡眠和_ _唤醒魔法方法

当一个对象被序列化时,PHP将调用__sleep方法(如果存在的话),并执行操作,比如给变量赋值。在反序列化一个对象后,PHP将调用__wakeup方法。这两种方法都不接受参数。__sleep方法必须返回包含要序列化的属性的数组。PHP将丢弃其他属性的值。如果没有__sleep方法,PHP将丢弃其他属性的值。

在程序执行之前,serialize()函数会先检查是否有一个神奇的方法__sleep。如果有,首先调用__sleep()方法,然后执行序列化操作。这个函数可以用来清理对象,并返回一个包含对象中所有变量名称的数组(必须返回。相反,unserialize()检查是否有__wakeup方法。如果存在,将首先调用__wakeup方法,例如,该方法可用于重新连接数据库。

6演示测试

Foo类

私人$name

公共娱乐动作测试(){

返回#39测试# 39

}

}

$foo新foo()

$cser序列化($foo)

$uncser取消序列化($cser)

$json json_encode($foo)

$unjson json_decode($json)

echo $uncser-gttest()

echo $unjson-gtt:

试验

PHP在第33行对未定义的方法stdclass: : t:调用

如何把一个json数组转换成list?

转储是序列化,它可以将列表转换为字符串。

将字符串还原到列表中。

导入json

ABC[123454]

abc_json json.dumps(abc)

打印(abc_json -

,abc_json,

,类型(abc_json))

abc_list json.loads(abc_json)

打印(abc_list -

,abc_list,

,类型(abc_list))

结果:

abc_json -

[1, 2, 3, 454]

ltclass strgt

abc_list -

[1, 2, 3, 454]

ltclass列表gt

序列化 方法 json 对象 字符串

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。