位置: 编程技术 - 正文

使用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注意的问题)

  • 消费税的税目有多少
  • 主营业务收入科目按其所反映的经济内容不同
  • 纳税人对所提交信息的什么负责
  • 待报解预算收入计入什么科目
  • 一般纳税人结转销售成本怎么算
  • 预缴税款可以抵税吗
  • 党费会计核算科目说明
  • 椅子坐垫有用吗
  • 企业年末要写财务报告吗
  • 进项和销项必须在一个月吗
  • 数量金额式明细账模板
  • 企业所有职工都要交税吗
  • 建筑业统一发票税率多少
  • 账目不清什么意思
  • 现金长短款的一般处理
  • 多计提的应收账款如何调整
  • 非正常损失进项税额怎么处理
  • 忘了报税算偷税漏税吗
  • 变更税号后地税个税申报系统还是显示老税号怎么办?
  • 发票作废情况说明书
  • 水利建设基金的计税依据及税率
  • 工资三金是指哪三样
  • 企业的哪些活动属于投资活动?
  • 种植保险包括
  • 房产税计税税率怎么算
  • 房地产所得税税负率计算公式
  • 汇算清缴涉及长期投资收益如何做会计核算?
  • 售后服务领用材料分录
  • 企业实缴出资额怎么查
  • 制造费用在利润表体现吗
  • 分配车间管理人员薪酬会计分录
  • 以公司名义购买房产的利与弊
  • pvlsvr.exe - pvlsvr是什么进程 有什么用
  • php字符串赋值
  • Win7系统僵尸部队4存档丢失的解决方法
  • vue的watch监听
  • 跨省不动产登记
  • php加密方式有哪些
  • 增值税专用发票有几联?
  • 压缩的命令
  • lvs命令详解
  • 增值税专用发票和普通发票的区别
  • phpcms如何配置404
  • 滴滴票可以抵扣吗?
  • 企业交房租没有发票能充费用吗
  • 交易性金融资产的账务处理
  • 发票验旧后还要缴销吗
  • 长期股权投资成本法转权益法的处理
  • 工程结算的会计分录
  • 企业所得税不能税前扣除项目
  • 材料的采购成本构成
  • 会计付租金会计分录
  • 费用报销单一张写不完怎样转下一张?
  • 房地产影响投资和消费,事关民生和发展
  • 发工资的是会计还是出纳
  • 会计月末都需要做什么
  • 加油账务处理
  • 进口关税增值税可以抵扣吗
  • 关联交易定价方法包括
  • 计提的意义
  • 残疾人保障金怎么申报
  • 私营公司固定资产怎么查
  • mysql join 慢
  • linux系统中cron命令
  • qq windows
  • centos w命令
  • win10系统回收站损坏了怎么恢复
  • ubuntu系统安装教程
  • win7开机错误代码
  • cocos2dx入门
  • javascript面向对象编程
  • python socket编程教程
  • unity web端
  • android开源app
  • javascript编程软件
  • python中url
  • jquery动态添加和删除div
  • 第三方审计报告需要多久
  • 加油站怎么收税
  • 苏州社保代缴机构查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设