使用php解析foursquare json feed

时间:2013-08-05 21:28:05

标签: php json foursquare

使用Foursquare API,它返回以下JSON提要

{ “元”:{ “代码”:200}, “通知”:[{ “类型”: “notificationTray”, “项目”:{ “unreadCount”:1}},{ “类型”:“的消息“,”item“:{”message“:”好的!我们已经找到了@ Place XXX。你来过这里2次。“}},{”type“:”insights“,”item“:{”见解 “:{” 计数 “:4”,项 “:[{” 类型 “:” pointsReward “ ”图像“: ”https://foursquare.com/img/points/discovery-venue3.png“,” 标题“:”你的第一个朋友要检查Place XXX!“,”shareable“:false,”points“:{”image“:{”prefix“:”https://foursquare.com/img/points/discovery-场地3 _“,”尺寸“:[44,60,120],”名称“:”。png“},”消息“:”你的第一个朋友要检查XXX的地方!“,”积分“:5}},{”键入“:”pointsReward“,”image“:”https://foursquare.com/img/points/discovery-venue3.png“,”title“:”第一次来到Place XXX。“,”可分享“:false, “点”:{ “图像”:{ “前缀”: “https://foursquare.com/img/points/discovery-venue3_”, “尺寸”:[44,60,120], “姓名”: “.PNG” },“消息”:“第一次来到Place XXX。”,“points”:5}},{“type”:“pointsReward”,“image”:“https://foursquare.com/img/points/category -outdoor.png “” TI tle“:”您朋友的第一广场办理登机手续!“,”可分享“:false,”积分“:{”image“:{”prefix“:”https://foursquare.com/img/points/category-户外_“,”尺寸“:[44,60,120],”名称“:”。png“},”消息“:”你的朋友的第一个广场办理登机手续!“,”积分“:6}},{”type “:”pointsReward“,”image“:”https://foursquare.com/img/points/discovery-venue3.png“,”title“:”您的第一位朋友可以在这里办理登机手续。“,”可分享“:假, “点”:{ “图像”:{ “前缀”: “https://foursquare.com/img/points/discovery-venue3_”, “尺寸”:[44,60,120], “姓名”:”。 png“},”消息“:”你的第一个朋友要在这里办理登机手续。“,”积分“:2}}}}}},{”type“:”leaderboard“,”item“:{”total“: 18,“得分”:[{“icon”:“https://foursquare.com/img/points/discovery-venue3.png”,“留言”:“你的第一个朋友要检查... 我想做的是显示消息“好的!我们已经找到了@ Place XXX。你来过这里2次。”它嵌入在第二个“类型”标签中

我习惯使用foreach函数来获取这种值,但是这个我无法得到它。 我需要专家的帮助,感谢您的参与。

Code Im试图使用但没有成功:

$data = json_decode($response, true); // return array not object
      foreach($data['notifications']['type'][0] as $item) {
      echo $item['item']['message']; 
}

1 个答案:

答案 0 :(得分:0)

notifications是一个数组,所以你不能像{I}那样用'type'哈希进入哈希。您应该遍历$data['notifications'],直到找到"type"属性为"message"的对象。然后挖掘该对象的"item"并获取其"message"。有关回复中notifications字段的详细信息,请参阅https://developer.foursquare.com/docs/responses/notifications

在您提供的示例JSON中,要直接访问所需的内容,您可以使用$data['notifications'][1]['item']['message']1可能会根据您传入的API version而发生变化,但只要您继续使用相同的版本,就应该相对稳定。