PHP解析OpenArch API JSON:获取EventType值失败求助
解决OpenArch API JSON取值为空的问题
先排查JSON实际结构
别直接硬写取值路径,先把解码后的完整数组打印出来,明确字段层级:
$jsondatapers = file_get_contents('你的OpenArch API地址'); $decodedData = json_decode($jsondatapers, true); // 打印第一个元素的完整结构 print_r($decodedData[0]);
从输出里你能直观看到Event是单个对象还是数组,以及EventType的实际嵌套层级。
常见正确取值方式
根据OpenArch API的典型返回结构,Event通常是数组类型(一个主体可能关联多个事件),所以需要调整取值逻辑:
- 如果仅需第一个事件的
EventType:
$jsonpers = $decodedData[0]; $eventType = $jsonpers['Event'][0]['EventType']; echo $eventType; // 此时应能获取到"Overlijden"
- 如果需要筛选特定事件类型:
foreach ($jsonpers['Event'] as $event) { if ($event['EventType'] === 'Overlijden') { echo $event['EventType']; break; } }
额外排查要点
- 检查JSON解码是否成功:
if (json_last_error() !== JSON_ERROR_NONE) { echo 'JSON解码错误:' . json_last_error_msg(); }
- 注意字段大小写:PHP关联数组对大小写敏感,确认API返回的字段名和你写的完全一致(比如是
Event还是event)
内容的提问来源于stack exchange,提问作者Fred Baltus
相关产品推荐
相关产品推荐

