解析json并用php显示

时间:2013-08-05 15:18:32

标签: php json

我无法解析我在pastebin http://pastebin.com/TmZGw92j

发布的数据集

我可以直接进入路线,但由于某种原因不能再进一步。以下是我设置的变种:

$airTicketListResponse = $result->body->airTicketListResponse;
$routings = $airTicketListResponse->routings;
$trips = $routings->trips;
$segments = $trips->segments;

我可以print_r($ routings)但是当我尝试print_r($ segments)时我没有得到任何回复。我想从路线和路段中提取物品。

这是我目前的foreach循环,在旅途中匆匆而过。

foreach($routings as $item){
    echo '<span style="font-weight:bold;">Airline - '.$item->mainAirlineName.' Price - '.$item->adultBasePrice.'</span><br />'.$item->trips->segments->departureAirportCode.' '.$item->trips->segments->departureTime.'<br /><br />';

    }

2 个答案:

答案 0 :(得分:2)

tripssegments元素是对象数组,而不是单个对象。

所以你需要引用数组元素[0]结构的哪一部分。

$trips = $routings[0]->trips;
$segments = $trips[0]->segments;

请注意,似乎有两次旅行,如果您想要所有细分,还需要$trips[1]->segments

更有可能的是,您将希望使用foreach()循环来读取它们,而不是直接引用数组键。

这样的东西?

foreach($routings as $routing) {
    $trips = $routing->trips;
    .... do something here with $trips? ....
    foreach($trips as $trip) {
         $segments = $trip->segments;
         .... do something here with $segments? ....
    }
}

答案 1 :(得分:0)

你有几层嵌套的数组。我认为你的代码需要改为:

$trips = $routings[0]->trips;
$segments = $trips[0]->segments;