0

配送APIをアプリに統合しようとしています。詳細をSOAPクライアントに送信し、解析できないオブジェクト配列を受信して​​います。以下は配列です。これを解析するのを手伝ってください:

object(stdClass)#29 (4) {
    ["Transaction"]=>
    object(stdClass)#30 (5) {
        ["Reference1"]=>
        string(0) ""
        ["Reference2"]=>
        string(0) ""
        ["Reference3"]=>
        string(0) ""
        ["Reference4"]=>
        string(0) ""
        ["Reference5"]=>
        string(0) ""
    }
    ["Notifications"]=>
    object(stdClass)#31 (0) {
    }
    ["HasErrors"]=>
    bool(false)
    ["Shipments"]=>
    object(stdClass)#32 (1) {
        ["ProcessedShipment"]=>
        object(stdClass)#33 (8) {
            ["ID"]=>
            string(10) "42939401"
            ["Reference1"]=>
            string(9) "100000002"
            ["Reference2"]=>
            string(0) ""
            ["Reference3"]=>
            string(0) ""
            ["ForeignHAWB"]=>
            string(0) ""
            ["HasErrors"]=>
            bool(false)
            ["Notifications"]=>
            object(stdClass)#34 (0) {
            }
            ["ShipmentLabel"]=>
                object(stdClass)#35 (2) {
                ["LabelURL"]=>
                string(76) "http://content/rpt_cache/9c0d152bbcdc4e739132d2dsda5506.pdf"
                ["LabelFileContents"]=>
                NULL
            }
        }
    }
}

私はこの応答を$response変数で受け取り、次のことを試しましたが、これらはどれも機能しませんでした。

echo $order    = $response["Shipments"]["ProcessedShipment"]["Reference1"];
echo $hawb     = $response["Shipments"]["ProcessedShipment"]["ID"];
echo $barcode  = $response["Shipments"]["ProcessedShipment"]["ShipmentLabel"]["LabelURL"];

作成したすべての貨物を手動でキャンセルしなければならないサービスにはテストフレームワークがないため、あまり試すことができません。どうしたらいいか教えてください。

すべての助けを事前に感謝します。

4

3 に答える 3

3

配列ではなく、オブジェクトです。->プロパティにアクセスするには、を使用する必要があります。

$order    = $response->Shipments->ProcessedShipment->Reference1;
于 2012-05-18T08:33:57.613 に答える
1

->演算子を使用してオブジェクトのプロパティにアクセスします

$response->Shipments->ProcessedShipment->Reference1;
$response->Shipments->ProcessedShipment->ID;
$response->Shipments->ProcessedShipment->ShipmentLabel->LabelURL;
于 2012-05-18T08:35:47.670 に答える
1

これは配列ではなく、stdClassオブジェクト(一般的なオブジェクト)です。

使用する必要があります$response->Shipments->ProcessedShipment->Reference1

于 2012-05-18T08:35:54.790 に答える