位置: 编程技术 - 正文

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

  • 增值税为10%的有哪些
  • 开普票的销项税额
  • 小企业会计制度及核算办法
  • 可以抵扣的税控发票
  • 境外机构可以开通b股账户
  • 资本公积什么时候做账
  • 核定征收企业有利润如何注销税务登记
  • 价格调节基金费率
  • 冲回上年多提的费用会计分录
  • 设备款支付比例
  • 去年暂估的成本,汇算前收到的少,红冲全部暂估吗
  • 工程施工购买的标示牌怎么开票给甲方
  • 材料暂估价结算调整规定
  • 工程项目分包需要缴纳企业所得税吗
  • 公司厂房在建但已收到房租是否要交房产税呢?
  • 2020年资金账簿印花税最新规定
  • 核定征收企业所得税的小型微利企业不得享受优惠政策
  • 金税盘和税控盘和ukey
  • 发票是不是一定要三签才能开
  • 事业单位去年的岗位今年还会招吗
  • 计提房产税的会计分录怎样做
  • 税前扣除是好事吗
  • 企业转产是什么意思
  • 上月发票未上传
  • 发票金额与实际金额不一致违法吗
  • 支付劳保用品会计怎么做
  • linux网络管理实训总结
  • macos itunes
  • 方正电脑u盘启动按什么键
  • php字符串变量
  • phpstorm ftp
  • win7系统任务计划在哪里
  • 税收筹划的税种
  • 橡皮树的养殖方法视频教程
  • element组件的二次封装注册
  • 同一控制下企业合并会计准则
  • element动态变化表格列
  • 西安微信公众号开发
  • 客户多付款入哪个科目
  • des算法加密解密过程
  • 基于stm32的飞行器
  • 什么时候进项税转出
  • 开办费的主要账户是什么
  • 管理费用明细账余额累加吗
  • 销售返利计入销售费用
  • 视同小规模纳税人是有?
  • 小额收据入账规则最新
  • 取得交易性金融资产的交易费用
  • 单位安装摄像头合法吗
  • 财政补贴收入要交增值税税率
  • 城市维护建设税怎么算
  • 一般纳税人企业所得税税率
  • 实际出资大于注册资金
  • 融资租入企业所得税扣除
  • 房地产影响投资和消费,事关民生和发展
  • 发票额开多了多出的金额怎么处理?
  • 投资利润率多少算合理
  • 交易费用计入何种科目
  • 收到银行季度结转怎么做
  • 固定资产报废属于非流动资产处置损失吗
  • 旅游费用如何记账科目
  • 建筑业营改增后,人工费不存在可抵扣
  • 会计清查是什么意思
  • windows server 2008 u盘安装
  • fedora安装中文语言包
  • winxp怎么做系统
  • centos7 network
  • iis搭建php环境
  • windows8功能设置
  • 下载的mt4安装成了mt5
  • jquery搜索页面内容
  • jQuery Checkbox 全选 反选的简单实例
  • jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示问题分析
  • android内存机制
  • 安卓 自动更新
  • 超链接打开比较合适的方式是什么
  • jquery获取当前点击的元素
  • 手机申报税务不成功怎么办
  • 进项名称和销项同一产品不同称呼
  • 广西税务12366如何交社保
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设