解析json并用php显示

解析json并用php显示,php,json,Php,Json,我在解析我发布在这里的pastebin的数据集时遇到问题 我可以走到路线上,但由于某种原因,我不能走得更远。以下是我设置的VAR: $airTicketListResponse = $result->body->airTicketListResponse; $routings = $airTicketListResponse->routings; $trips = $routings->trips; $segments = $trips->segments; 我可

我在解析我发布在这里的pastebin的数据集时遇到问题

我可以走到路线上,但由于某种原因,我不能走得更远。以下是我设置的VAR:

$airTicketListResponse = $result->body->airTicketListResponse;
$routings = $airTicketListResponse->routings;
$trips = $routings->trips;
$segments = $trips->segments;
我可以打印r($routings),但当我尝试打印r($segments)时,我没有得到任何回报。我想从路线和分段中提取项目

这是我当前的foreach循环,它在trips中会失效

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 />';

    }
foreach($item作为$routings){
echo“Airline-”.$item->mainAirlineName.“Price-”.$item->adultBasePrice.
.$item->trips->segments->departureAirportCode.“.$item->trips->segments->departureTime.
; }
trips和
segments
元素是对象数组,而不是单个对象

因此,您需要引用数组元素
[0]
结构的哪一部分

$trips = $routings[0]->trips;
$segments = $trips[0]->segments;
请注意,似乎有两个行程,如果需要所有行程,还需要
$trips[1]->段

更可能的情况是,您希望使用
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? ....
    }
}

这里嵌套了几层数组。我认为您的代码需要更改为:

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

raw\u body:Unirest\HttpResponse:private
中的JSON似乎无效,您在结尾缺少两个
}
。首先,使用
var\u dump
而不是
print\u r
确保错误级别设置为最大,即
错误报告(2047)所以你会看到任何有帮助的通知。是的,我在粘贴中遗漏了这一点…尽管它是有效的。那么我该如何访问段呢?@Spudley那么foreach循环访问路由和段中的项目会是什么样子呢?@smitty-我已经编辑了答案以包含一些存根代码。你显然需要做更多的事情,但是你用它做什么取决于你的程序在做什么,所以我帮不了你。@Spudley谢谢你,bud,但是我不需要做I++和路由[I]段[I]之类的事情吗?那就是我失去理智的地方?现在,如果我只显示$routings[1],它只显示1条记录。我上面的代码不需要任何
++
,但可能还有其他方法。很明显,你需要的帮助比我的时间还多。此外,我们在“如何处理json”之外还有很长的路要走;这更像是“基本PHP101”。我只能建议您慢慢来,阅读PHP错误消息告诉您的内容(确保启用了完整的错误报告)。如果您还有更具体的问题,请尝试为您正在努力解决的特定问题单独发表一篇文章。@Spudley,当您像这样分配变量$trips=$routings[0]->trips;它只得到一个实例(第一个)。