cURL/PHP/JSON-为什么我无法解析结果? [英] cURL / PHP / JSON - Why am I unable to parse results?

查看:169
本文介绍了cURL/PHP/JSON-为什么我无法解析结果?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用以下代码从具有JSON结果的API中提取数据.

I am using the following code to pull data from an API with JSON results.

// Open connection
$ch = curl_init();

// Make the curl call
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$head = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);


  $data = json_decode($head,true); 
   foreach($data as $item) {
    $name = $item['name'];
    $description = $item['description'];
    echo "NAME: $name DESCRIPTION: $description";

 }

如果我使用print_r($ head),我会看到所有结果,因此我知道url,用户名,密码是好的,但是代码末尾的echo语句不会产生结果.

If I use print_r($head) I see all of the results so I know url, username, password is good, however the echo statement at the end of the code is not producing results.

这是当我print_r($ head)时JSON的示例.至少其中一些.

Here is a sample of what the JSON looks like when I print_r($head). Some of it at least.

{"events":[{"eventId":5183191,"name":"The Rhythm Rockets - FREE","description":"Summer Concert Series - The Rhythm Rockets . .\nFREE. Look for a YELLOW balloon. Bring a chair. PLEASE BE ON TIME (6:00 PM!) TO SIT WITH THE GROUP. Allow time for street parking. Expect a crowd. Meetup at 6pm - Showtime is 7pm. Food, wine and beer will be on sale.\nIn case of inclement weather, concerts will be held indoors at the Lincoln Center, 935 Maple Avenue. For weather updates, call[masked] after 5:30 pm. If moved inside, there is no way we can sit together.","primaryImage":{"smallImageUrl":"https://domainnamestorage.blob.core.windows.net/portalimages/portalimages/71021444-d72d-456c-a419-36b61ead5259.small.png","mediumImageUrl":"https://domainnamestorage.blob.core.windows.net/portalimages/portalimages/71021444-d72d-456c-a419-36b61ead5259.medium.png","largeImageUrl":"https://domainnamestorage.blob.core.windows.net/portalimages/portalimages/71021444-d72d-456c-a419-36b61ead5259.large.png"},"categories":[{"categoryId":2,"parentCategoryId":null,"name":"Performing Arts"},{"categoryId":12,"parentCategoryId":null,"name":"Food & Drink"},{"categoryId":17,"parentCategoryId":2,"name":"Music"},{"categoryId":75,"parentCategoryId":12,"name":"Drinks"},{"categoryId":100,"parentCategoryId":17,"name":"Concerts"}],"location":{"latitude":41.792683,"longitude":-88.011765,"city":"Downers Grove","state":"IL","address":"1000 Grove St","country":"United States","locationName":"Fishel Park"},"instances":[{"startDateTime":"2018-08-21T18:00:00Z","endDateTime":null,"hasTime":true,"allDay":false}],"price":{"lowerPrice":null,"upperPrice":null,"free":false,"description":null},"lastUpdatedDate":"2018-07-26T02:20:49.686Z","popularity":null,"interest":50,"links":[{"isSponsor":false,"name":"Meetup","linkUrl":"https://www.meetup.com/Im-Not-Dead-Yet-50-plus/events/252406255/","logoUrl":null},{"isSponsor":true,"name":"I'm Not Dead Yet --- 50+ Meetup","linkUrl":"http://Meetup.com/Im-Not-Dead-Yet-50-plus","logoUrl":null},{"isSponsor":true,"name":"I'm Not Dead Yet --- 50+ Meetup","linkUrl":"http://Meetup.com/Im-Not-Dead-Yet-50-plus","logoUrl":null}],"previousEventIds":[],"seriesStart":"2018-08-21T18:00:00Z","seriesEnd":null,"url":"http://portal.domainname.com/m/FireVite#!/details/THE-RHYTHM-ROCKETS-FREE/5183191/2018-08-21T18","handPicked":false,"customField":null,"contact":{"organization":null,"name":null,"email":null,"phone":null},"media":null}

推荐答案

解码后,$ data将有一个名为events的数组,每个元素都是您要查看的数组.尝试:

After your decode, $data will have an array called events with each element being the array you are trying to look at. try:

foreach ($data['events'] as $item)...

这篇关于cURL/PHP/JSON-为什么我无法解析结果?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆