php数组转json问题
博客专区 > yankewei 的博客 > 博客详情
php数组转json问题
yankewei 发表于1年前
php数组转json问题
  • 发表于 1年前
  • 阅读 5
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   

今天在与app对接的时候,遇到了一些问题:就是在app页面中插入一条广告,这条广告是从数据库中取出,数据可能为空,就在这个  `空` 上遇到了问题,举例:

第一种情况:有数据:

<?php
$data['person'] = array('id'=>1,'name'=>'TheOrdinaryWorld','age'=>23);
echo json_encode(array('code'=>200,'message'=>'数据返回成功','data'=>$data));

输出的是:

{
    "code":200,
    "message":"数据返回成功",
    "data":{
        "person":{
            "id":1,
            "name":"yankewei",
            "age":23
        }
    }
}

这是期望看到的数据格式。

第二种情况:没有数据

<?php
$data['person'] = array();
echo json_encode(array('code'=>200,'message'=>'数据返回成功','data'=>$data));

输出的是:

{
    "code":200,
    "message":"数据返回成功",
    "data":{
        "person":[

        ]
    }
}

这里看到person是一个数组,这时,app端找我了 ,这个person有数据你返回对象,没有数据你返回一个数组,这我们怎么去解析,都返回一个对象才可以,空的话也应该是一个空对象,当时不知道怎么办,就说那我返回一个null吧,结果是这样:

{
    "code":200,
    "message":"数据返回成功",
    "data":{
        "person":null
    }
}

等我回到家,想起这个,怎么返回一个空对象,于是就改为这样:

<?php
$data['person'] = (object)array();
echo json_encode(array('code'=>200,'message'=>'数据返回成功','data'=>$data));

这样就返回了一个空对象:

{
    "code":200,
    "message":"数据返回成功",
    "data":{
        "person":{

        }
    }
}

其实我也不知道返回null和一个空对象哪个好。

标签: PHP 数组 JSON
共有 人打赏支持
粉丝 2
博文 8
码字总数 2518
×
yankewei
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: