行使PHP json_decode也许碰着的坑与办理要领
媒介最近在做网站 的时辰用到了json_decode函数,发明白一个题目,此刻总结分享出来供各人参考进修,话不多说了,来一路看看具体的先容吧。 场景:某项目客户反馈,输出的功效 JSON 中有个要求为工具的数据字段,在某些环境下返回的是 [] 而不是 {};数据由公司其他部分提供,查察原始数据的时辰,没有发明任何题目;其后由于要插手某些预处理赏罚,在获取到其他部分的 JSON 数据之后举办解码并对某个字段举办处理赏罚;然而,在处理赏罚完之后再次行使 JSON 输出,发明功效已经不是我们想要的了。 原始数据 个中 foo 是我要举办处理赏罚的字段,处理赏罚完成之后再次行使 编码完成之后的功效却是这样的 空工具编程了空数组,并且我并没有处理赏罚过字段 bar 通过对模仿数据的实测,发明是由于在对 JSON 举办解码的时辰,是这么解的 题目就出在这里,因为 PHP 自身的特征,在 PHP 中 array 是可以代表强范例说话,如 Java 中的 List 和 Map 的。 来看 PHP 中 来历 http://php.net/manual/zh/function.json-decode.php 当第二个参数 以是正确的做法是在解码 JSON 的时辰 json_decode 不要转达第二个参数;让解码功效是一个工具,然后操纵工具的属性,操纵完成之后再次编码就不会呈现毛病。 这种题目最突出在于强范例说话和弱范例说话的 API 对接上,因为项目标下家是行使 Java 说话,以是导致了 BUG 总结以上就是这篇文章的所有内容了,但愿本文的内容对各人的进修可能事变能带来必然的辅佐,假若有疑问各人可以留言交换,感谢各人对编程之家的支持。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |