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

发布于 2022-09-12 00:25:11 字数 426 浏览 26 评论 0

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

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

没有值的情况:

{
  "result":"success"
}

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一身软味 2022-09-19 00:25:11

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

$json = json_decode($resp, true);
$json['data'] = $json['data'] ?? null;
var_dump($data);
只有一腔孤勇 2022-09-19 00:25:11

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

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

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

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文