我的接口是这样子的,有返回的时候,json里面的data才会有值,不然就会是一个空字符串
同事跟我说,他接收的时候,data是用json转成对象去取,然后如果data是空,他整个程序就爆掉了,要么我data返回null,不能返回空。我就搞不明白真的是这样子吗
我的接口是这样子的,有返回的时候,json里面的data才会有值,不然就会是一个空字符串
同事跟我说,他接收的时候,data是用json转成对象去取,然后如果data是空,他整个程序就爆掉了,要么我data返回null,不能返回空。我就搞不明白真的是这样子吗
确实是这样你原本的data是个对象,这里变成了数组他没做处理就会挂掉,你可以 $info['data'] = new stdClass();//返回空对象
作为一个服务端我觉得应该对字段类型敏感处理。
一般客户端都会使用类似于gson的框架去解析服务端返回的json数据,而数据格式是需要提前定义的。data既然是一个对象,那你就用对象的默认值null,我觉得这个需求也挺正常的。
app端写的不够严谨,先判断状态码code,成功则继续解析data,不成功,返回错误码code,不进行解析,
服务端因为php弱类型,app端对每个数据的类型都有要求,即强类型,尽量保证返回数据类型的一致性,data不为空的时候,返回的json字符串,app端解析为对象,data为空的时候,服务端判断是否为空,为空则赋值一个空对象
$obj = new stdClass();
php端干嘛不首先定义变量呢??$data=array()
另外客户端不管怎么样都要进行保证不闪退,,我建议你在开发过程中,模拟一些错误返回值给客户端看看客户端会不会闪退,然后让他背黑锅哈哈,开玩笑了
$result = array(
"code" => "2",
"msg" => "",
"data" => (Object)array()
);
别直接写
$result = array(
"code" => "2",
"msg" => "",
"data" => array()
);
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
2 回答1k 阅读
2 回答2.6k 阅读
1 回答1.1k 阅读✓ 已解决
你同事刚毕业么?起码应该先判断下code再去研究要不要去找数据呀!!!