php - PHP中的序列化或json?

所以我需要在 PHP 中编码一个数组并将其以纯文本形式存储在 MySQL 数据库中,我的问题是我应该使用 serialize() 还是 json_encode()?它们各自的优缺点是什么?

我认为在这种情况下他们中的任何一个都会这样做。但是你更喜欢哪一个,为什么?如果它是用于数组以外的东西?

最佳答案

serialize 的主要优点:它特定于 PHP,这意味着 它可以表示 PHP 类型,包括您自己的类的实例——您将获得您的对象反序列化数据时,仍然是类的实例。


json_encode 的主要优点:JSON 并不特定于 PHP:有库可以用多种语言读/写它——这意味着如果你想要 可以用另一种语言操作的东西会更好 比 PHP。

JSON 字符串也比序列化字符串更容易手动读取/写入/修改

另一方面,由于 JSON 不是 PHP 特有的,它不知道 PHP 特有的东西——比如数据类型。


作为一些旁注:

  • 即使这两者之间的速度差异很小,也应该无关紧要:您可能不会序列化/反序列化大量数据
  • 您确定这是在数据库中存储数据的最佳方式吗?
    • 您将无法在数据库中对序列化字符串进行大量查询:您将无法在 where 子句中使用您的数据,也无法在没有 PHP 干预的情况下更新它。 ..

https://stackoverflow.com/questions/2574728/

相关文章:

json - PostgreSQL 中 JSON 数据类型的大小限制

javascript - 在输入隐藏字段中存储返回 json 值

ruby-on-rails - 设计 API 身份验证

jquery - getJSON 到 console.log() 输出 json 结构

jquery - 使用 Highcharts 通过 JSON 重新加载图表数据

java - 在 JSON 对象中解析 JSON 数组

javascript - 将 JSON 字符串转换为 Javascript 数组

java - 如何使用 @ResponseBody 从 Spring Controller 返回 J

java - Gson:@Expose 与 @SerializedName

json - 使用 JSON 协议(protocol)处理版本控制的最佳方法是什么?