PHP 中 Serialize 和 JSON 区别和使用

2019-07-2109:41:17后端程序开发Comments2,744 views字数 520阅读模式

Serialize 和 JSON 区别

1. 使用 Serialize 进行编码后,大小大概是使用 JSON 编码的1.5倍,这是因为 Serialize 后字符串包含了子串的长度,并且有更加详细的类型区分,而 JSON 只有四种类型,并且是以简单的符号表示。这也造成了 Serialize 要比 JSON 速度更快,一般快 20-30%。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/14260.html

2. JSON 是基于Unicode格式,所以要在 UTF-8 环境下进行操作,如果中文不想转换成 unicode,需要使用额外的参数: json_encode($array, JSON_UNESCAPED_UNICODE)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/14260.html

3. JSON 无法存储对象的原始的 class,解码的时候,只能解码成 stdClass 的实例。另外在 JSON 中也无法使用 __sleep() 和 __wakeup() 魔术方法。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/14260.html

4. 默认情况下,对象的公共属性才能被 JSON 编码,当然在 PHP 5.4 之后,可以通过类实现 JsonSerializable 接口来改变该行为。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/14260.html

5. 当然 JSON 更通用,它是跨平台的通用格式,在接口中,现在基本都是用 JSON 了。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/14260.html

Serialize 和 JSON 使用

一般来说,在内部存储,建议使用 Serialize,如果要输出接口给和第三方交互,一般使用 JSON。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/14260.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/bc/14260.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定