【问题标题】:Use a "0" in a PHP JSON request在 PHP JSON 请求中使用“0”
【发布时间】:2016-12-15 03:57:29
【问题描述】:

我正在尝试创建一个从 Forecast.io 的 API 中提取数据的 PHP 页面。对于每日视图,他们将日期作为数字给出。我想要今天的信息,所以数字是“0”。我的代码如下所示:

<?php

echo '<h4>', round(($data->daily->data->0->apparentTemperatureMax)*5/9) , '&deg;F</h4>';
echo '<h2>', round(($data->currently->apparentTemperature)*5/9) , '&deg;F</h2>'; 
echo '<h4>', round(($data->daily->data->0->apparentTemperatureMin)*5/9) , '&deg;F</h4>'; ?>`

在表示最低和最高温度的地方,“0”是 forecast.io 使用的 JSON 格式的一部分。但是,每当我尝试此操作时,PHP 都会引发错误。错误:

Parse error: syntax error, unexpected '0' (T_LNUMBER), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in C:\wamp64\www\PHP Weather Widget\index.php on line 35

有没有办法使用零,或者我需要使用其他方法来解析数据以避免这种情况?

返回的 JSON 数据示例文件:https://darksky.net/dev/docs/forecast 可以进入本站:http://jsonviewer.stack.hu/查看返回数据的树状图。您可以通过转到“每日->数据”来查看格式。

任何帮助将不胜感激。

【问题讨论】:

  • data 是一个数组,而不是一个对象。
  • 0 是一个索引,请改用data[0]
  • 很高兴 data[0] 方法有效
  • 我在下面的回答解释了这一点!很高兴知道它有帮助。
  • 永远记住[....]被解析为数组,{.....}被解析为对象

标签: php html json parsing


【解决方案1】:

不要使用$data-&gt;daily-&gt;data-&gt;0-&gt;apparentTemperatureMax,而是尝试使用$data['daily']['data'][0]['apparentTemperatureMax']。 $data 是一个数组,而不是一个对象。

【讨论】:

    【解决方案2】:

    尝试使用 $data = json_encode($yourResponse, true),这样就可以将数据用作数组。在您的情况下,访问权限类似于 $data['daily']['data'][0]['apparentTemperatureMax']

    【讨论】:

      猜你喜欢
      • 2011-03-05
      • 2021-01-10
      • 2013-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-13
      相关资源
      最近更新 更多