用PHP基本的json_decode

时间:2014-06-05 06:00:36

标签: php wordpress json

我正在尝试创建一个Wordpress插件,该插件将引入JSON文件并(使用循环)为JSON文件中的每个对象创建一个元素。但是,这个特定的JSON文件的格式是我没有看到过的,因此我很难搞清楚如何提取数据。文件的开头和结尾标有数组括号。

这是JSON file

所以第一个对象看起来像这样:

[{
    "title": "Moderate earthquake - Fiji Region on June 5, 2014",
    "magnitude": "4.5",
    "location": "FIJI REGION",
    "depth": "334",
    "latitude": "-15.63",
    "longitude": "-176.92",
    "date_time": "2014-06-05T04:17:31+00:00",
    "link": "http://earthquake-report.com/2014/06/05/moderate-earthquake-fiji-region-on-june-5-2014/"
},

所以我得到了这个:

$json_feed_url = 'http://earthquake-report.com/feeds/recent-eq?json';
$args = array('timeout' => 120);
$json_feed = wp_remote_get($json_feed_url, $args);
$earthquake_data = json_decode($json_feed);

我如何实际将其拉入并打印出来?我不能只使用$ earthquake_data->标题,我需要一种能够使用索引从每个对象中提取的方法,因为它们没有名称。我是否需要从0指数开始并从那里开始?

echo $earthquake_data[0]; 
echo $earthquake_data[0]{$countervariable->title};

正如我所说,我想从本文档中的最后25个对象中提取信息。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

$json_feed_url = 'http://earthquake-report.com/feeds/recent-eq?json';
$args = array('timeout' => 120);
$json_feed = wp_remote_get($json_feed_url, $args);
$earthquake_data = json_decode($json_feed);

// $earthquake_data should be an array
foreach ($earthquake_data as $obj) {
  var_dump($obj);
  // example
  echo $obj->title;
}

答案 1 :(得分:0)

我刚刚下载了该文件,因为我不使用wp。

诀窍是使用' json_decode( data true ),然后PHP将所有对象转换为数组。只是几个' foreach'循环将打印它,从中选择等。

这是一些经过测试的示例代码。

<?php
$dc = json_decode(file_get_contents('earthquake.json'), true);

foreach ($dc as $details) {
    echo '<strong>', $details['title'], '</strong><br />';
    foreach($details as $name => $value) {
        echo $name, ' => ', $value, '<br />';
    }
}