技术-php

json_encode 关于boolean类型

2018-08-07  本文已影响0人  6f748fe54ad4

        今天在和阿里云同事对接api接口参数时,发生了一个问题。关于一个boolean参数,增加会这个参数就导致接口报错。

        经过检查分析和对接,发现是底层在处理参数时,json_encode处理了参数。json_encode讲boolean类型转成了1和0。导致请求接口时,参数类型错误,导致报错。

        借此机会,仔细看了下json_encode,夯实一下基础。

1.这个函数的功能是将数值转换成json数据存储格式, 支持范围

PHP 5 >= 5.2.0, PHP 7, PECL json >= 1.2.0

2. Json 只支持 utf-8 编码,与前端js保持一致,如果遇到中文,在浏览器中显示出乱码。解决方式:

        a : 在json_encode之前,把所有数组内所有内容都用urlencode()处理一下,然用json_encode转换成json字符串,最后再用urldecode将编码过的中文转回来,这样可以直接在浏览器上显示中文;

        b: json_encode($array, JSON_UNESCAPED_UNICODE);可以直接输出中文字符串

3.json_encode将boolean类型 true转成1,false转成0;

其实还是有点疑惑,为什么将boolean类型转为1或者0。暂时没有看到太好的文章

PS:有任何疑问或者想法欢迎大家一起交流!

上一篇下一篇

猜你喜欢

热点阅读