php如何优雅的处理api中npe的问题

跟java对接api。java那边序列化后有些为空的字段就直接不存在json内。比如有值的情况

  {
      "data":{
          "type":"xxx",
          "title":"xxx",
          "child":{
              "type":"xxx",
              "title":"xxx",
          }
       },
       "result":"success"
  }

没有值的情况:

{
  "result":"success"
}

没有指定情况下连data丢不存。如何优雅的处理这种npe问题,网上找不到json转实体类php的工具。

阅读 427
评论 2019-12-10 提问
    2 个回答

    json_decode 后再包装一层,判断是否有 data ,没有就给填充一个 NULL 就不好了

    $json = json_decode($resp, true);
    $json['data'] = $json['data'] ?? null;
    var_dump($data);
    评论 赞赏

      上面的图示的例子说实话不太规范,正常是这样处理的

      {
          "errno":0,
          "errmsg":"",
          "data":{
          
          }
      }
      

      会有errno做判断,如果有数据正常返回的话errno为0,如果没有正常数据返回的话errno为其他的自定义值,errmsg为报错信息

      如果对方不改接口的话就decode后判断下data字段是否存在empty($ret['data']),但是不建议这样做

      评论 赞赏
        撰写回答

        登录后参与交流、获取后续更新提醒