【问题标题】:parse the data json data using php foreach loop [closed]使用php foreach循环解析数据json数据[关闭]
【发布时间】:2014-06-02 17:06:51
【问题描述】:

我很难使用 php foreach 循环从下面的 json 数据中提取 lat lng 等数据。

   {
    "deals": [
      "division": {
      "timezone": "Central Time (US & Canada)",
      "lat": 32.4487,
      "timezoneOffsetInSeconds": -18000,
      "id": "abilene",
      "lng": -99.7331,
      "timezoneIdentifier": "America/Chicago",
      "name": "Abilene, TX"
     },

我想将数据解析为 lat lng 等。 这是我的php代码

      $json = file_get_contents($url);
      $json_string1 = json_decode($json);

      foreach($json_string1->deals as $mydata)
  {

      foreach($mydata->division as $p)
      {
      echo $p->lat;
      }
     }  

给出错误Trying to get property of non-object

【问题讨论】:

  • 在 foreach 循环中使用 $json_string1 而不是 $json_string 变量

标签: php json foreach


【解决方案1】:

这是一个更好的答案,假设您的 JSON 结构。如果您的 JSON 不是这样,请编辑您的问题并首先通过 jsonlint 或类似方法运行您的 json。

<?php
$json = <<<JSON
{
    "deals": [
        {
            "division": {
                "timezone": "Central Time (US & Canada)",
                "lat": 32.4487,
                "timezoneOffsetInSeconds": -18000,
                "id": "abilene",
                "lng": -99.7331,
                "timezoneIdentifier": "America/Chicago",
                "name": "Abilene, TX"
            }
        }
    ]
}
JSON;

  $json_string1 = json_decode($json, false);

  foreach($json_string1->deals as $mydata)
  {
    echo $mydata->division->lat;
  }
?>

【讨论】:

  • 这给出了一个垃圾值
【解决方案2】:

在 foreach 循环中使用 $json_string1 而不是 $json_string 变量

【讨论】:

  • 能否请您写出您遇到的确切错误
  • 它给出错误error Trying to get property of non-object
猜你喜欢
  • 2015-08-19
  • 1970-01-01
  • 2020-06-26
  • 1970-01-01
  • 2014-01-26
  • 2014-03-18
  • 1970-01-01
  • 1970-01-01
  • 2017-04-09
相关资源
最近更新 更多