我正在从一个以相当直接的结构返回 JSON 数据的 API 进行响应。伪结构最好表示为:
services -> service -> options -> option -> suboptions -> option
由于这是解码的 JSON,所有这些都是 stdClass 对象。我有许多 foreach 语句遍历各种服务和选项,它们都可以正常工作。但是,当我在子选项级别使用 foreach 语句时,对象被序列化为字符串。供您参考,子选项具有这样的结构。
[suboptions] => stdClass Object
(
[option] => stdClass Object
(
[code] => SOME_CODE
[name] => Some Name
)
)
当使用这样的 foreach 时(其中 $option 是services -> service -> options -> option中的一个选项):
foreach($option->suboptions->option as $suboption) {
print_r($suboption);
}
它输出
SOME_CODESome Name
不是预期的
stdClass Object
(
[code] => SOME_CODE
[name] => Some Name
)
我不知道任何原因 foreach 会在深度或其他条件方面这样做。我已经尝试了我能想到的一切并通过 SO 进行搜索,但找不到任何发生这种情况的案例。如果有人有任何想法,我很想听听他们的意见!干杯。
抱歉,如果它已在其他地方得到回答,或者我遗漏了一些明显的东西。如果我有,到目前为止它已经逃脱了我。
编辑:对于那些要求它确实是 AusPost PAC API 的人。2014 年左右从刚果民主共和国移除。