2017-11-19 6 views
0

このスレッドを作成する前に多くの検索を行いましたが、問題を単独で解決することはできません。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でそれをループするが、私は次のようにいくつかのerrosを取得していますよ:

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を与えることはできません、それは私的ではない私的です。 この問題の解決方法はわかりません。手伝って頂けますか?

+0

jsonの文字列が無効です。あなたの質問を改善してください。正確で正確なデータを提供する。私はこのページにいじめられようとしていません - これはちょうどページクリーンアップです。将来のSO読者は、明確な質問と役に立つ/正解から最大の利益を得ています。それ以外のものは、混乱やページの膨張にのみ役立ちます。 – mickmackusa

答えて

1

これは、アレイ内の唯一のレベルがあるので、あなたが「反復の上に」あるように、ドロップに見えます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>"; 
    } 
+0

... '$ new_json ['prefix_id'] ['prefix']'を含むすべての 'prefix'要素が必要だと誤解していない限り、実際の有効なjson値は何ですか?私たちはすべて自分たちの前提を作るために残されています。 – mickmackusa

+0

ありがとう!今は完璧に動作しています! – Giuseppe

+0

@GiuseppeあなたはAbidの答えをupvoteしましたか?これは実際には答えではなく、投稿されたjson文字列が無効であることを知らせるコメントです。 Abidはあなたの質問を改善することを要求しています(あなたはすべきです)。しかし、非回答/解決策をアップアップすることは不適切な投稿に報いています。 – mickmackusa

1

$新しいx(とない$×2)にアクセスしてみてください、あなたが間違ったVARにreferiingされているようだ

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

ありがとう、私は変更され、エラーは同じです。 – Giuseppe

+0

質問を更新し、JSONファイルサンプルを追加してください。 – scaisEdge

+0

(これは動作する解決策ではありません。削除してください) – mickmackusa

関連する問題