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:有任何疑问或者想法欢迎大家一起交流!