无法使用PHP从JSON带来数据

时间:2017-11-19 19:49:10

标签: php json

在创建这个帖子之前我已经搜索了很多,而且我不能单独解决我的问题。

<?php
      $str = file_get_contents('private url');
      $json = json_decode($str);
      $json = json_decode($str, true);
      foreach($json as $x){
         $new_str = file_get_contents('private url/'.$x["anomaly_id"]);
         $new_json = json_decode($new_str);
         $new_json = json_decode($new_str, true);
         foreach($new_json as $new_x){
            echo  "<tr> <td data-title='Prefix'>".$new_x["prefix"]. "</td></tr>";
        }
      }
?>

所以,我从URL获取一些值并将其循环到另一个URL上以获得不同的结果,但我得到一些错误:

Warning: Illegal string offset 'prefix
Undefined index: prefix

JSON:

{
"status": "Open",
"prefix": "153.212.26.75/32",
"group": "TABLE",
"anomaly": "Error",
"direction": "Incoming",
"decoder": {
},
 "unit": "bits/s",
 "class": "Thresholds",
 "prefix_id": {
 "prefix": "153.212.36.0/22",
 "href": "/wanguard-api/v1/ip_zones/1/prefixes/1152"
}

另外,我不能提供URL,它是私有的,它不是我的。 我不知道如何解决这个问题。你能救我吗?

2 个答案:

答案 0 :(得分:1)

似乎你正在引用错误的var尝试访问$ new_x(而不是$ x2)

foreach($new_json as $new_x){
 echo  "<tr> <td data-title='Prefix'>".$new_x["prefix"]. "</td></tr>";
}

答案 1 :(得分:1)

看起来你已经超过了#34;因为数组中只有一个级别,所以删除foreach循环并直接访问它:

  $str = file_get_contents('private url');
  $json = json_decode($str, true);
  foreach($json as $x){
     $new_str = file_get_contents('private url/'.$x["anomaly_id"]);
     $new_json = json_decode($new_str, true);
     echo  "<tr> <td data-title='Prefix'>".$new_json["prefix"]. "</td></tr>";
  }