Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP/JSON跳过信息?提供了多个测试用例_Php_Json_Parsing - Fatal编程技术网

PHP/JSON跳过信息?提供了多个测试用例

PHP/JSON跳过信息?提供了多个测试用例,php,json,parsing,Php,Json,Parsing,我还有一个JSON/PHP问题。首先,我将发布一段简短的JSON,至少足以表达我的观点: "results": [ { "members": [ { "side": "majority", "rank": 1, "title": "Chairman", "legislator": {

我还有一个JSON/PHP问题。首先,我将发布一段简短的JSON,至少足以表达我的观点:

 "results": [
    {
        "members": [
            {
                "side": "majority",
                "rank": 1,
                "title": "Chairman",
                "legislator": {
                    "bioguide_id": "T000464",
                    "birthday": "1956-08-21",
                    "chamber": "senate",
                    "contact_form": "http://www.tester.senate.gov/Contact/index.cfm",
                    "crp_id": "N00027605",
                    "district": null,
                    "facebook_id": "210573031664",
                    "fax": "202-224-8594",
                    "fec_ids": [
                        "S6MT00162"
                    ],
                    "first_name": "Jon",
                    "gender": "M",
                    "govtrack_id": "412244",
                    "icpsr_id": 40702,
                    "in_office": true,
                    "last_name": "Tester",
                    "lis_id": "S314",
                    "middle_name": null,
                    "name_suffix": null,
                    "nickname": null,
                    "office": "706 Hart Senate Office Building",
                    "party": "D",
                    "phone": "202-224-2644",
                    "senate_class": 1,
                    "state": "MT",
                    "state_name": "Montana",
                    "state_rank": "junior",
                    "term_end": "2019-01-03",
                    "term_start": "2013-01-03",
                    "thomas_id": "01829",
                    "title": "Sen",
                    "twitter_id": "testerpress",
                    "votesmart_id": 20928,
                    "website": "http://www.tester.senate.gov",
                    "youtube_id": "senatorjontester"
                }
            },
            {
                "side": "majority",
                "rank": 2,
                "title": null,
                "legislator": {
                    "bioguide_id": "P000590",
                    "birthday": "1963-01-10",
                    "chamber": "senate",
                    "contact_form": "http://www.pryor.senate.gov/public/index.cfm?p=ContactMe",
                    "crp_id": "N00013823",
                    "district": null,
                    "facebook_id": "9248638978",
                    "fax": "202-228-0908",
                    "fec_ids": [
                        "S0AR00028"
                    ],
                    "first_name": "Mark",
                    "gender": "M",
                    "govtrack_id": "300080",
                    "icpsr_id": 40301,
                    "in_office": true,
                    "last_name": "Pryor",
                    "lis_id": "S295",
                    "middle_name": null,
                    "name_suffix": null,
                    "nickname": null,
                    "office": "255 Dirksen Senate Office Building",
                    "party": "D",
                    "phone": "202-224-2353",
                    "senate_class": 2,
                    "state": "AR",
                    "state_name": "Arkansas",
                    "state_rank": "senior",
                    "term_end": "2015-01-03",
                    "term_start": "2009-01-06",
                    "thomas_id": "01701",
                    "title": "Sen",
                    "twitter_id": "senmarkpryor",
                    "votesmart_id": 35,
                    "website": "http://www.pryor.senate.gov",
                    "youtube_id": "senatorpryor"
                }
            },
好的-我试图获取的信息是每位立法者的头衔以及bioguide_id。我用来解析信息的代码如下:

 $url1 = 'http://congress.api.sunlightfoundation.com/committees?fields=members&apikey=XXXXXXXXXXX&per_page=20&page=1';
 $response1 = file_get_contents($url1);
 $key1 = json_decode($response1, true);


 foreach ($key1['results'] as $value){

$title_1 = $value['members'][0]['title'];

if($title_1 == NULL){
    $title_1 = "NULL";
}
echo $title_1 . '<br/>' . $value['members'][0]['legislator']['bioguide_id'] . '<br/>';

 }
 Chairman
 T000464
 Chairman
 M001170
 Chairman
 B001265
 Chairman
 L000261
 Chairman
 B000711
 Chairman
 K000384
 Chairman
 B001267
 Chairman
 C001070
 Chairman
 W000802
 Chairman
 M001176
 Chairman
 N000032
 Chairman
 K000367
 Chairman
 G000555
 NULL
 L000174
 Chairman
 H001069
 Chairman
 B001267
 Chairman
 D000607
 Vice Chairman
 B000243
 Chairman
 S000148
 Vice Chairman
 S000148

乍一看,我觉得事情看起来有点可疑,因为主席头衔的数量在浮动(主席之间应该有几个空),而第二个bioguide_id不是第二个职位的正确bioguide_id(主席&T000464看起来是正确的,但下一个不应该是主席M001170,而应该是NULL P000590)。我已将$value['members'][0]…切换为$value['members'][1],并能够获得第二个地址,但结果不正确。是否有任何人可以看到任何东西,使我能够获取正确的信息?从我处理其他JSON文件的方式来看,我似乎没有做得明显错误。提前感谢(我知道这很长).

您的
foreach
正在循环遍历结果集,而不是成员集

这是我确认的每个人的工作
foreach

foreach ($key1['results'][0]['members'] as $value) {
  $title_1 = $value['title'];
  if ($title_1 == NULL) {
    $title_1 = "NULL";
  }

  echo $title_1 . '<br/>' . $value['legislator']['bioguide_id'] . '<br/>';
}
foreach($key1['results'][0]['members']作为$value){
$title_1=$value['title'];
如果($title_1==NULL){
$title_1=“空”;
}
echo$title_1.“
”。$value['legiator']['bioguide_id'].
”; }
这就是创建JSON的真正目的…您是否通过验证器运行JSON数据?例如,从查看代码来看,您似乎需要迭代成员。您是否可以使用数组而不是部分JSON更新您的帖子?您总是使用索引处的成员
0
这是有意的吗?您就是Ryan!谢谢哦,太多了——正是这样简单的疏忽阻碍了我多年的编码。再次感谢