php检测json对象中的未定义属性

时间:2013-06-23 18:09:14

标签: php json parsing

我从链接的api获取一些用户信息作为json对象。我使用json_decode方法解析json。它工作得很好。我的问题是当json中不存在字段时。例如,位置对象有时不具有endDate属性。

    $endDate = $user->positions->values[$i]->endDate->year."-".$user->positions->values[$i]->endDate->month."-01"; 

当endDate属性不存在时,它会给出未定义的属性错误。和代码失败。我尝试使用try catch但它仍然在try中给出了错误。我是一个新手php编码器。在调用该属性之前,如何检测属性是否未定义?

1 个答案:

答案 0 :(得分:1)

您可以通过以下方式验证字段是否存在:

if (isset($user->positions->values[$i]->endDate))
{
    $endDate = $user->positions->values[$i]->endDate->year."-".$user->positions->values[$i]->endDate->month."-01";
}
else
{
    $endDate = null; // Or whatever you want it to be
}