位置: 编程技术 - 正文

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

  • 离岸价的含义
  • 保险佣金个人所得税怎么算
  • 家庭保洁服务价格表
  • 金蝶软件发票录入什么科目
  • 公司账户美金入账
  • 收到预付款的发票怎么写摘要
  • 收到投资款需要缴纳什么税
  • 预算控制方法主要包括
  • 大病医疗专项附加扣除标准举例
  • 企业收到赞助费
  • 融资租赁与按揭贷款区别
  • 银行卡收到养老金是什么意思
  • 公司的利润怎样分配
  • 营改增后增加了什么征税项目
  • 餐饮服务业是否属于企业
  • 小规模纳税季度申报
  • 4800的个人所得税
  • 金融业保险业
  • 对账单回复函
  • 应付职工薪酬明细表怎么填写
  • 应收账款一般按实际发生额入账
  • 土地增值税加计5%扣除年限
  • 产业政策鼓励类
  • win11 应用商店
  • windows7怎么操作
  • 收到老板图片
  • 公司的贷款过桥怎么办
  • npscheck.exe - npscheck是什么进程 有什么用
  • 企业所得税汇算清缴调增的项目有哪些
  • php current
  • 滞纳金和罚金计入哪个会计科目
  • 克卢恩国家公园在哪里
  • 何为租赁合同
  • 非货币性资产交换以公允价值为基础进行计量
  • php身份证正则表达式
  • 爱丽丝小镇在哪
  • 虚拟机安装win11提示无法运行
  • 世界上最完美的犯罪
  • php 密码
  • 公司买办公用品是谁的工作
  • 增值税发票打印机
  • 增量留抵税额退还举例
  • 购入已提足折旧的固定资产账务处理
  • 金融商品转让和贷款服务
  • 小规模都是做季报吗
  • 应收账款余额百分比法与账龄分析法有何异同
  • 企业所得税的成本
  • sqlserversa用户登录失败
  • 租房合同 陷阱
  • 房产交易缴税
  • 承租方承担的税费有哪些
  • 分公司财务归谁管
  • 长期股权投资全部亏损汇算清缴怎么填
  • 公司与股东的往来款
  • 主营业务收入少计跨年调整
  • 主营业务成本包括工资吗
  • 企业偿债能力的含义
  • 代扣代缴个人所得税分录
  • MySQL PXC构建一个新节点只需IST传输的方法(推荐)
  • ubuntu的安装包
  • linuxvlc安装
  • windows8.1企业版build9600
  • xp系统的本地连接
  • ubuntu怎么将文件传送到电脑
  • cocos2dx schedule
  • cocos2djs
  • 深入理解
  • Unity3D游戏开发标准教程
  • [置顶]马粥街残酷史
  • 创建一个新用户user1,设置其主目录为/home/user1:
  • jquery?
  • python 操作微信
  • 全面解析朝鲜战争
  • 湖南电子税务局app
  • 关于涉访涉诉终结的规定
  • 河南个人社保查询登录入口官网
  • 北京市地方税务局2015第10号文件
  • 小规模纳税人销售自己使用过固定资产
  • 2022年车船税减半政策
  • 年报基础数据怎么查
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设