首页 > 开发 > iOS > 正文

php作为弱类型语言json_encode的时候不是想要的时候

2017-09-08 13:45:12  来源:网友分享

php在给安卓还有ios提供接口的时候,我们碰到这样的一个问题
例子:

php 关联数组

[    'aa' => '111',    'cc' => '222']

转json以后

{    "aa":"111",    "cc":"222"}

但是如果某些情况下,php的关联数组为空,json_encode以后,json字符串就从{}变成了[],app客户端本身想要一个字典类型的数据结构,结果变成了数组,导致解析错误。

我想问下phper你们都是怎么处理这种问题的?我们目前的解决方法其实无非就是服务端php判断或者客户端判断,服务端判断比较现实一点,因为服务端知道本身应该是什么数据,如果数据为空的话可以new stdClass(),转json前把类型变成空对象,但是每次这种结构都要判断一下也是有点麻烦。
不知道有什么好的其他解决方案?

解决方案

尽量规范些。

$arr    =   array(            'code'=>0,            'msg'=>'获取成功',            'data'=>array(  'aa' => '111','cc' => '222'),        );==========================================================        { "code":0, "msg":"获取成功", "data":{  "aa":"111",  "cc":"222" }}=============================================================={ "code":0, "msg":"获取成功", "data":[   ]}

安卓和ios一般崩盘,一种是接口那边程序报错了,要不然就是解析json的时候用错类型,比方本来是解析字符串了,后面变成了数字型,然后就是你上面这种情况,一会有数据,一会没数据,没数据的时候照样当成有数据来解析,肯定报错。

我之前就问过我的同事,像安卓和ios像这种基础的数据判断完全是可以自己处理的,不过你接口要尽量规范就是了。