php作为接口返回json数据格式问题

mengfk000 2014-11-13 01:58:20
php作为接口返回json数据格式问题,返回的数据中,如果是多维数组就是[{ ...... }]这种形式,如果这里面空,应该返回 [ ] 这种。
如果是一维数组,{.......}这种形式,如果它是空,也要返回 { } 这种形式。
问题来了,如果多维数组为空,比如$result = array();,返回的就是 [ ] 这种形式。改怎么改呢?
echo str_replace('[]', '{}', json_encode($json)); 这样的话就把所有的 [ ] 都替换成 { } 大括号了
...全文
2029 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
猪崽儿0o0 2014-11-13
  • 打赏
  • 举报
回复
引用 12 楼 mengfk000 的回复:
[quote=引用 10 楼 u011619326 的回复:] 不需要替换的,你用java的json进行解析后就是个数组,直接判断就好了。闪退的原因是因为你没有对空对象传递进行屏蔽导致程序致命错误直接闪退,是代码不严谨导致,跟json的括号没关系。
如何对空的进行屏蔽,很多数据都是空呀[/quote]你要交给androidJava的去做这个工作,如果你是写android那你肯定知道怎么屏蔽,如果你只是写接口的那就需要根据需求去规范输出对应的数据。
lijpwsw 2014-11-13
  • 打赏
  • 举报
回复
引用 12 楼 mengfk000 的回复:
[quote=引用 10 楼 u011619326 的回复:] 不需要替换的,你用java的json进行解析后就是个数组,直接判断就好了。闪退的原因是因为你没有对空对象传递进行屏蔽导致程序致命错误直接闪退,是代码不严谨导致,跟json的括号没关系。
如何对空的进行屏蔽,很多数据都是空呀[/quote] 个人觉得你们的json输出需要有一个统一的出口,这样就输出结果进行统一的控制
lijpwsw 2014-11-13
  • 打赏
  • 举报
回复
建议你返回json的时候最外层用对象,这样json_encode之后就是{};

$rst = new stdClass();
echo json_encode($rst);

$rst->code = 200;
$rst->errormessage = "操作成功";
$rst->data = array( 'name' => '张三');
echo json_encode($rst);
mengfk000 2014-11-13
  • 打赏
  • 举报
回复
引用 10 楼 u011619326 的回复:
不需要替换的,你用java的json进行解析后就是个数组,直接判断就好了。闪退的原因是因为你没有对空对象传递进行屏蔽导致程序致命错误直接闪退,是代码不严谨导致,跟json的括号没关系。
如何对空的进行屏蔽,很多数据都是空呀
xuzuning 2014-11-13
  • 打赏
  • 举报
回复
当然你也可以做一下类型转换(不过使用时不判空总是不行的)
$a = array(
 'b' => (object)array(),
 'c' => array(),
);

echo json_encode($a);
{"b":{},"c":[]}
猪崽儿0o0 2014-11-13
  • 打赏
  • 举报
回复
不需要替换的,你用java的json进行解析后就是个数组,直接判断就好了。闪退的原因是因为你没有对空对象传递进行屏蔽导致程序致命错误直接闪退,是代码不严谨导致,跟json的括号没关系。
mengfk000 2014-11-13
  • 打赏
  • 举报
回复
引用 8 楼 xuzuning 的回复:
那是因为你没有判空
判断了,空的话我就让它为空数组$a=array();
xuzuning 2014-11-13
  • 打赏
  • 举报
回复
那是因为你没有判空
mengfk000 2014-11-13
  • 打赏
  • 举报
回复
引用 6 楼 xuzuning 的回复:
返回空数组或空对象会影响使用吗?
不仅仅是影响使用了,是根本没法用了。安卓的闪退,就是因为它
xuzuning 2014-11-13
  • 打赏
  • 举报
回复
返回空数组或空对象会影响使用吗?
poemail 2014-11-13
  • 打赏
  • 举报
回复
if判断一下输出的值,根据不同的数据结果输出不同的$json后再json_encode
mengfk000 2014-11-13
  • 打赏
  • 举报
回复
引用 2 楼 u010036886 的回复:
看了1楼的神回复我想说我也是来帮你顶贴的
。。。。。。。。。。。。。。。。。。。。
mengfk000 2014-11-13
  • 打赏
  • 举报
回复
引用 2 楼 u010036886 的回复:
看了1楼的神回复我想说我也是来帮你顶贴的
。。。。。。。。
闪闪放光芒 2014-11-13
  • 打赏
  • 举报
回复
看了1楼的神回复我想说我也是来帮你顶贴的
idong杨 2014-11-13
  • 打赏
  • 举报
回复
猜猜我是谁。。。。我是来帮你顶贴的。。

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧