所以这可能是一个简单的问题,但我无法找到答案,因为我有一个变量,它查看标准类对象并存储各个字段名称中的值。不幸的是,我的字段之一称为 [JOB::c_job_id]。如果我在我的变量中使用它
$jobid = ($json_data_single->response->data[0]->fieldData->JOB::c_job_id);
然后它认为
::
是范围解析运算符(::),但我只想从字段中检索数据,我该怎么做?
如果您无法重命名 JSON 中那个非常不幸的命名键,您可以采取以下方法之一:
$json = '{"JOB::c_job_id": 453}';
$decodedAsObject = json_decode($json);
var_dump($decodedAsObject->{'JOB::c_job_id'});
$decodedAsArray = json_decode($json, true);
var_dump($decodedAsArray['JOB::c_job_id']);
第一个要求您将属性名称括在
{}
中以使其按字面解释。另一个更简单,因为当您解码为数组时,数组键是简单的字符串,当它们包含可以被解释为具有特殊执行含义的字符或字符序列时,不会出现任何问题。
可在此处进行实时测试。