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