这里肯定有一些显而易见的事我在做错了,但我花了好几个小时试图解决这个问题,这没什么意义。
<?php
date_default_timezone_set('America/New_York');
$json = file_get_contents('https://www.govtrack.us/api/v2/vote/?congress=114&chamber=house&session=2015&order_by=-created');
$obj = json_decode( $json,true);
$bills = $obj['objects'];
foreach($bills as $b){
print_r($b);
print_r($b['category']);
print_r($b['title']); ///wtf.
}
?>
json请求返回的数组包含类别和标题的索引,但它为title返回NULL。由于某种原因,json数组中的其他几个元素返回NULL。 PHP返回未定义的索引错误,但索引已明确定义。
我在这里缺少什么?
答案 0 :(得分:3)
title
索引位于related_bill
下,而不是主objects
数组。
这应该有效:
foreach($bills as $b){
print_r($b);
print_r($b['category']);
print_r($b['related_bill']['title']);
}
答案 1 :(得分:2)
指数已明确定义。
不,不是。我看了一下URL和&#34; title&#34;不是&#34;对象&#34;中的对象的索引,而是&#34; related_bill&#34;
中的对象的索引使用以下方式访问它:
$b['related_bill']['title']
答案 2 :(得分:1)
试试这段代码在你的json中,不是&#39;标题&#39;索引,但它的&#34;标题&#34; in&#34; related_bill&#34;
<?php
date_default_timezone_set('America/New_York');
$json = file_get_contents('https://www.govtrack.us/api/v2/vote/?congress=114&chamber=house&session=2015&order_by=-created');
$obj = json_decode( $json,true);
$bills = $obj['objects'];
foreach($bills as $b){
print_r($b);
print_r($b['category']);
print_r($b['related_bill']['titles']); ///wtf.
}
?>
将$ b [&#39;标题&#39;]替换为$ b [&#39; related_bill&#39;] [&#39; titles&#39;]