简体   繁体   English

使用 PHP(Shiprocket API)从 JSON Object 中检索值

[英]Retrieve a value from JSON Object using PHP (Shiprocket API)

I am getting below json data thru Shiprocket API. Now I want to extract value of below variables in PHP code from this json.我通过 Shiprocket API 获得低于 json 的数据。现在我想从这个 json 中提取 PHP 代码中以下变量的值。

I have tried to use json_decode but it did not work and show null value:我尝试使用 json_decode 但它不起作用并显示 null 值:

$data = json_decode($json);
$sr_status = $data['shipment_status'];

Please suggest the code to retrieve below variables value.请建议用于检索以下变量值的代码。

shipment_status, awb_code, courier_company_id shipment_status, awb_code, courier_company_id

Array
(
    [0] => stdClass Object
        (
            [tracking_data] => stdClass Object
                (
                    [track_status] => 1
                    [shipment_status] => 7
                    [shipment_track] => Array
                        (
                            [0] => stdClass Object
                                (
                                    [id] => 180339484
                                    [awb_code] => 11150911492
                                    [courier_company_id] => 55
                                    [shipment_id] => 1711169662
                                    [order_id] => 233223781187
                                    [pickup_date] => 2023-01-11 03:02:00
                                    [delivered_date] => 2023-01-16 12:22:00
                                    [weight] => 0.25
                                    [packages] => 1
                                    [current_status] => Delivered
                                    [delivered_to] => Solapur
                                    [destination] => Solapur
                                    [consignee_name] => ABC
                                    [origin] => Ludhiana
                                    [courier_agent_details] =>
                                    [edd] =>
                                )

                        )

                    [shipment_track_activities] => Array
                        (
                            [0] => stdClass Object
                                (
                                    [date] => 2023-01-16 12:22:00
                                    [status] => 000-T-DL
                                    [activity] => SHIPMENT DELIVERED
                                    [location] => SOLAPUR
                                    [sr-status] => 7
                                    [sr-status-label] => DELIVERED
                                )

                            [1] => stdClass Object
                                (
                                    [date] => 2023-01-16 11:34:00
                                    [status] => 002-S-UD
                                    [activity] => SHIPMENT OUTSCAN
                                    [location] => SOLAPUR
                                    [sr-status] => 17
                                    [sr-status-label] => OUT FOR DELIVERY
                                )

                                                 

                        )

                    [track_url] => https://shiprocket.co//tracking/11150911492
                    [etd] => 2023-01-14 17:02:00
                    [qc_response] => stdClass Object
                        (
                            [qc_image] =>
                            [qc_failed_reason] =>
                        )

                )

        )

)


you can try this:你可以试试这个:

$array = ...; // Your array here
$data= json_decode($array);
$shipment_status = $data[0]->tracking_data->shipment_status;
$awb_code = $data[0]->tracking_data->shipment_track[0]->awb_code;
$courier_company_id = $data[0]->tracking_data->shipment_track[0]->courier_company_id;

Or use $data = json_decode($json,true);或者使用$data = json_decode($json,true); which return an array where you can use它返回一个数组,您可以在其中使用

foreach($data as $val) {
    $shipment_status = $val['tracking_data']['shipment_status'];
    foreach ($val['shipment_track'] as $value) {
        $awb_code = $value['awb_code'];
        $courier_company_id = $value['courier_company_id'];
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM