Echo JSON数组特定元素

时间:2017-12-03 02:42:25

标签: php json wordpress

我对如何在JSON数组中回显某个元素感到困惑。

在时间序列(1分钟)下,我想输出1.打开。为了给我它的实际价值。

到目前为止,我只能输出完整的数组。

JSON文件的链接是:https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=MSFT&interval=1min&apikey=demo

另外,我正在使用wordpress。

以下是我正在使用的代码:

$request = wp_remote_get('https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=MSFT&interval=1min&apikey=demo');

if( is_wp_error( $request ) ) {
	return false; // Bail early
}

$body = wp_remote_retrieve_body( $request );

$data = json_decode($body, true);

echo $body;

2 个答案:

答案 0 :(得分:2)

你有阵列,你只需要循环它。

//...
$data = json_decode($body, true);

foreach ($data['Time Series (1min)'] as $date => $row) {
    echo $date.' => '.$row['1. open'].'<br>';
}

如果您只想要一个值,因为它不是最好的结构,日期是关键,这有点棘手。但您可以使用array_values()函数来解决此问题。

$min = array_values($data['Time Series (1min)']);

echo $min[0]['1. open']; //84.2000

答案 1 :(得分:1)

不太了解WordPress,但认为你的问题与阅读有空格的JSON键有关,你需要使用括号来达到此目的,请参阅下面的演示,使用$.getJSON阅读你的网址提供并打印响应中的密钥1. open

&#13;
&#13;
$.getJSON('https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=MSFT&interval=1min&apikey=demo').success(function(response) {
  var timeline = response['Time Series (1min)'];

  for (var i in timeline) {
    console.log(timeline[i]["1. open"]);
  }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;