位置: 编程技术 - 正文

使用PHP json_decode可能遇到的坑与解决方法(使用的英文)

编辑:rootadmin

推荐整理分享使用PHP json_decode可能遇到的坑与解决方法(使用的英文),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:使用灭火器人要站在上风口还是下风口,使用粗盐热敷十大危害,使用伪造变造机动车驾驶证扣几分,使用伪造变造机动车驾驶证扣几分,使用伪造变造机动车驾驶证扣几分,使用伪造变造机动车驾驶证扣几分,使用时间,使用伪造变造机动车驾驶证扣几分,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

最近在做网站 的时候用到了json_decode函数,发现了一个问题,现在总结分享出来供大家参考学习,话不多说了,来一起看看详细的介绍吧。

场景:

某项目客户反馈,输出的结果 JSON 中有个要求为对象的数据字段,在某些情况下返回的是 [] 而不是 {};数据由公司其他部门提供,查看原始数据的时候,没有发现任何问题;后来因为要加入某些预处理,在获取到其他部门的 JSON 数据之后进行解码并对某个字段进行处理;然而,在处理完之后再次使用 JSON 输出,发现结果已经不是我们想要的了。

原始数据

其中 foo 是我要进行处理的字段,处理完成之后再次使用 json_encode($data) 进行 JSON 编码。

使用PHP json_decode可能遇到的坑与解决方法(使用的英文)

编码完成之后的结果却是这样的

空对象编程了空数组,而且我并没有处理过字段 bar

通过对模拟数据的实测,发现是因为在对 JSON 进行解码的时候,是这么解的

问题就出在这里,由于 PHP 自身的特性,在 PHP 中 array 是可以代表强类型语言,如 Java 中的 List 和 Map 的。

来看 PHP 中 json_decode() 方法是如何定义的

来源 $assoc 为 true 时,返回的类型是 array,所以问题就来了,当 JSON 中空对象 {} 和 [] 空数组,使用这种方式解码出来的结果表现是一致的;即 array();当再次 json_encode() 编码的时候就出现了 {} 变 [] 了。

所以正确的做法是在解码 JSON 的时候 json_decode 不要传递第二个参数;让解码结果是一个对象,然后操作对象的属性,操作完成之后再次编码就不会出现偏差。

这种问题最突出在于强类型语言和弱类型语言的 API 对接上,由于项目的下家是使用 Java 语言,所以导致了 BUG

总结

标签: 使用的英文

本文链接地址:https://www.jiuchutong.com/biancheng/287567.html 转载请保留说明!

上一篇:PHP实现的简单在线计算器功能示例(php实现和工作原理)

下一篇:phpStudy中升级MySQL版本到5.7.17的方法步骤(php升级到php7注意的问题)

  • 印花税纳税义务人有哪些
  • 什么是抄报税成功
  • 土地增值税应纳税额如何计算
  • 30万免税超过30万
  • 企业自建固定资产
  • 广告公司对外捐赠的会计处理怎么做?
  • 如何理解出口退税政策
  • 小规模开票数量怎么算
  • 公司投资股票有风险吗
  • 预缴物业费是否符合法律规定
  • 银行利息收入要开票吗
  • 企业未实际列支教育经费要纳税调整吗?
  • 小规模纳税人收入超过500万怎么办
  • 不动产的进项税额分两年抵扣吗?
  • 报税没有报怎么办
  • 公车保险费可以抵扣吗
  • 专票入账暂不抵扣如何申报
  • excel自动计算增值税
  • 固定资产清理会计处理例题
  • 向关联企业借款债资比
  • 以前月份个税没交怎么办
  • 取得土地的流程
  • 老板垫资如何做账务处理
  • 工资申报怎么写
  • 资源税纳税申报流程
  • 公司为员工缴纳社保的法律规定
  • php smtp类
  • c++ 每日十问3-处理数据
  • 电子发票能否作废
  • 以前年度损益调整
  • 前端解决跨域问题的8种方案(最新最全)
  • 低代码开发开源
  • 餐费进什么科目
  • 固定资产的销售怎么做账
  • 开具红字发票资料清单
  • 收支比是收入比还是利润
  • 社保台账显示未托收
  • 一般纳税人销售自行开发的软件产品
  • 一般纳税人好不好
  • 金蝶k3固定资产如何入账
  • 公司股东会和董事会
  • 在阿里云的云主机之间怎么通信
  • 补发去年工资会被扣税吗
  • 固定补贴是否属于社保
  • sh sqlplus
  • SQL2005中char nchar varchar nvarchar数据类型的区别和使用环境讲解
  • 带薪年假一般是什么时候
  • 公司注销实收资本怎么处理
  • 权益法转其他权益工具
  • 外部审计的构成
  • 计提的管理费用要结转吗
  • 商场扣点怎么做分录
  • 固定资产处理附件是什么
  • 存货换入无形资产账务处理
  • 短期理财收益账务分录
  • 什么是债券转让价格与发行价格
  • 成本类科目会计处理分录
  • 发货单票据格式
  • 未分配利润属于总账科目吗
  • 公司厂房房产税计税依据最新
  • 序列号错误或不完整
  • centos直接安装
  • xp系统如何查询配置
  • 无光驱无u盘重装系统
  • xp系统关机没反应怎么办
  • centos6.5破解密码
  • windows推送
  • linux修改服务器ip地址
  • windows7日文版改中文
  • win8个性化外观恢复默认设置
  • nodejs nodemon
  • android 坐标系
  • jquery写入json文件
  • node和javascript
  • 深入理解计算机系统
  • 创建一个新用户user1,设置其主目录为/home/user1:
  • shell脚本实现监控进程
  • javascript构造函数创建对象
  • 企业从国外进口铁矿石
  • 广东省国家税务总局班子成员
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设