Php 若请求返回多个对象,则代码有效;若请求仅返回一个对象,则代码出错

Php 若请求返回多个对象,则代码有效;若请求仅返回一个对象,则代码出错,php,json,Php,Json,我想根据应聘者从事的行业来挑选他们。当我向行业中只有一个候选人(JSON格式)的候选人发送请求时,我的请求返回此数据: 我使用以下代码: $rowArray = $data->response->result->Candidates->row; for ($i = 0; $i < count($rowArray); $i++) { $FL = $data->response->result->Candidat

我想根据应聘者从事的行业来挑选他们。当我向行业中只有一个候选人(JSON格式)的候选人发送请求时,我的请求返回此数据:

我使用以下代码:

$rowArray = $data->response->result->Candidates->row;

for ($i = 0; $i < count($rowArray); $i++) {            

      $FL = $data->response->result->Candidates->row[$i]->FL;

}
它在我的PHP代码中设置候选变量,这样我就可以在表中显示它。

这应该可以:

$FL = $data->response->result->Candidates->row->FL[$i];

它告诉您“不能使用stdClass类型的对象作为数组”,因为您正试图这样做;像访问数组一样访问对象。可能您的服务器根据您发送的特定请求返回了不同的数据结构。

您可以按照以下步骤进行操作- 1.首先检查它是否是一个数组,然后按常规操作 2.否则创建一个数组并推送它,然后照常执行

$rowArray = $data->response->result->Candidates->row;
        if(!is_array($rowArray))
        {
        $rowArray=array($data->response->result->Candidates->row);
        //so that $rowArray is now an array and count gives 1
        }

我最终实现了一个与此基本相同的解决方案,谢谢。
$FL = $data->response->result->Candidates->row->FL[$i];
$rowArray = $data->response->result->Candidates->row;
        if(!is_array($rowArray))
        {
        $rowArray=array($data->response->result->Candidates->row);
        //so that $rowArray is now an array and count gives 1
        }