php - 使用 PHP 解析 JSON

标签 php json formatting

我有以下从服务提要中提取的 JSON 内容:

[
   {
      "global_event":{
         "ending_at":"2011-11-07T02:00:00Z",
         "short_url":"http://bit.ly/reAhRw",
         "created_at":"2011-10-04T14:25:41Z",
         "event_responses":[

         ],
         "addresses":{
            "location":{
               "city":"blah",
               "latitude":30.205288,
               "zipcode":"343434",
               "street":"blah",
               "longitude":-95.475289,
               "state":"TX"
            }
         },
         "body":"blahblahblah",
         "euid":"2f489d0c82d167f1c16aba5d3b4c29ade6f1d52a",
         "title":"Fusion",
         "updated_at":"2011-10-04T14:26:57Z",
         "event_roles":[

         ],
         "user":{
            "long_name":"Fusion Single",
            "nickname":""
         },
         "event_items":[

         ],
         "starting_at":"2011-11-07T00:00:00Z"
      }
   }
]

我尝试了以下代码来解析它无济于事:

$json = @file_get_contents('jsonfeed');
$feed = json_decode($json);

foreach($feed->global_event as $item) {
            $rss_item = array(
                'title' => $item->title,
                'link' => $item->short_url,
                'author' => $item->long_name,
                'content' => $item->body,
                'date' => $item->updated_at,
                'type' => 'Woodlands Church'
            );
            array_push($this->rss, $rss_item);  
        }

创建的最终数组 $this->rss 中没有任何内容,只是一个空数组。有什么想法吗?

最佳答案

在 JSON 中,花括号(“{”和“}”)定义对象,而不是数组。尖括号定义数组。

所以 $feed 是一个数组,包含 1 个对象和 1 个名为 global_event 的属性。

循环应该是:

$feed = json_decode($json);
foreach($feed as $obj) {
    $item = $obj->global_event;

    $rss_item = array(
        'title' => $item->title,
        'link' => $item->short_url,
        'author' => $item->long_name,  
        'content' => $item->body,
        'date' => $item->updated_at, 
        'type' => 'Woodlands Church'
    );
    array_push($this->rss, $rss_item);  
}

关于php - 使用 PHP 解析 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7889738/

相关文章:

php - mysql历史数据和记录id

javascript - 如何制定 for 循环代码以在特定 html 表格单元格中插入值?

javascript - json模式验证模式属性和属性冲突

string - 在 Excel 中将时间字段转换为字符串

PHP MS SQL ID格式问题

visual-studio - 如何在 Visual Studio 中自动格式化 XAML 代码?

php - codeigniter 删除 index.php 表单 url

php - 亚马逊 AWS 简单工作流服务 SWF PHP 示例

php - 如何读取分隔文件的部分内容

javascript - 使用 map 转换数组 - Javascript