私はかなり単純な構造で 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年まで削除されているため、DRCからの切り替え。