>  기사  >  백엔드 개발  >  json - PHP数组序列化后,数据无法反序列化问题,急

json - PHP数组序列化后,数据无法反序列化问题,急

WBOY
WBOY원래의
2016-06-06 20:35:591431검색

我将一个数组序列化放到了MySQL里面,然后用PHP获取后,用JSON格式发送出去,接口接受此数据的时候,再将JSON转化为了数组,最后发现这个数组product_list键所对对应的序列化数组不能被反序列化,这是为什么呢?

  1. A数组中的 product_list是数组
  2. 将product_list序列化入库
  3. PHP 查询数据库出来,将整个大数组转换为JSON 发送给接口调用方
    4.请求的接口放将JSON转换为数组,成功转换为数组后,发现数组的 product_list键,所对应
    的反序列化数据转换为数组失败

回复内容:

我将一个数组序列化放到了MySQL里面,然后用PHP获取后,用JSON格式发送出去,接口接受此数据的时候,再将JSON转化为了数组,最后发现这个数组product_list键所对对应的序列化数组不能被反序列化,这是为什么呢?

  1. A数组中的 product_list是数组
  2. 将product_list序列化入库
  3. PHP 查询数据库出来,将整个大数组转换为JSON 发送给接口调用方
    4.请求的接口放将JSON转换为数组,成功转换为数组后,发现数组的 product_list键,所对应
    的反序列化数据转换为数组失败

可能是因为中文编码的缘故。php 反序列化的时候依赖字节长度。
不要用 php 序列化存进去了, 转成 json ,这样通用性也好很多。谁能保证,这些数据是一直被 php 读取呢?

我曾经遇到过这么个情况,同一个字符串,我在本地序列化的结果,跟在远程服务器上序列号的结果不一样。因为对我的系统不影响,所以我没有深究。但是我知道有这种现象会发生:

或许是因为php版本的问题,或许是因为php扩展的问题,更或许是因为编码等等某些原因,在不同的服务器环境中,PHP序列化的结果是不稳定不可靠的

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.