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

查看:118
本文介绍了android - php作为弱类型语言json_encode的时候不是想要的时候的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

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像这种基础的数据判断完全是可以自己处理的,不过你接口要尽量规范就是了。

这篇关于android - php作为弱类型语言json_encode的时候不是想要的时候的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆