2014-11-18 3 views
0

json 디코드 결과에서 배열 데이터를 에코하려는 경우 file_get_contents와 curl을 모두 시도해 보았습니다. json 디코드에서 배열 데이터를 에코합니다.

여기 .. ​​지금
{"Servers": { 
"lastChangedDate": null, 
"ServersList": [ 
    { 
    "online": "The server is UP", 
    "offline": "The server is DOWN", 
    "maintainace": "The server is currently in maintenance mode", 
    "location": "EU", 
    "ip": "x.x.x.x" 
    }, 
    { 
    "online": "The server is UP", 
    "offline": "The server is DOWN", 
    "maintainace": "The server is currently in maintenance mode", 
    "location": "US", 
    "ip": "x.x.x.x" 
    } 
] 
}} 

다음 출력을 디코딩 한 후에 이런 배열 될 것이다 ..

Array (
    [Servers] => Array (
     [lastChangedDate] => 
     [ServersList] => Array (
      [0] => Array (
       [online] => The server is UP 
       [offline] => The server is down 
       [maintenance] => The server is currently in maintenance mode 
       [location] => EU 
       [ip] => x.x.x.x 
      ) 
      [1] => Array (
       [online] => The server is UP 
       [offline] => The server is DOWN 
       [maintenance] => The server is currently in maintenance mode 
       [location] => US 
       [ip] => x.x.x.x 
      ) 
     ) 
    ) 
) 

I는 JSON 출력되는 서버로부터 얻는 반응이다 내 PHP 코드

<?php 
    $request = file_get_contents("test.json"); 
    $input = json_decode($request, true); 
    echo $input['Servers']['lastChangedDate']['ServersList'][0]['online']; 
?> 

데모 with print_r ($ input); 대신 내 메인 페이지에 따라서 http://phpad.org/run/1666334020

에코의 난 당신이 위의 게시 된 JSON에서이 http://codepen.io/anon/pen/jEEPMG.html

+2

'$ 입력 [ '서버는'] [ 'ServersList'] [0] [ '온라인'] '사람을 작동 – Fractaliste

+0

작동합니다 .. 고마워 .. 대답으로 게시하여 답변으로 표시 할 수있었습니다. – skyline33

+0

print_r 출력은 올바르게 표시하면 들여 쓰기됩니다. 선 아래로 들여 쓰기를 따라 가세요. –

답변

0

항목에 액세스하고 싶어 할 수 $input['Servers'];$input['lastChangedDate']; 배열의 동일한 레벨에 있으므로 $input['Servers']['lastChangedDate']에 액세스 할 수 없습니다.

나는 당신이하려는 생각 :

$input['Servers']['ServersList'][0]['online']; 
1

처럼되고 출력하고자 'lastChangedDate'널은

$input['Servers']['lastChangedDate']['ServersList'][0]['online']; 
에 액세스 할 수 없음을 의미

먼저 lastChangedDate가 null 인 이유를 찾아야합니다. $ input [ 'Servers'] [ 'lastChangedDate'] [ 'ServersList'] [0] [ 'online'];

굵게 표시된 텍스트는 액세스 충돌이 시작되는 곳입니다. PHP 출력도해야 당신처럼 "정의되지 않은 인덱스 : SERVERLIST"오류 먼저 그 내용에 추가 요청을 할 lastChangedDate를 작성해야하므로

당신이

$input['Servers']['ServersList'][x]['online']; 
+0

구조체가 다음과 같이 있기 때문에 그는이 방법을 무시해서는 안되며 NULL과 아무런 관련이 없습니다. Servers-> ServersList-> –

+0

그는 자신의 예제에서 NULL 인 lastChangedDate를 호출하므로 그냥 실수라고 그는 lastChangedDate를 호출했습니다. –

+0

저는 지난 몇 년 동안 null이되었다고 생각합니다. 왜 그런지 모르겠지만 개발자들과 연락이 없으므로 PHP에 익숙하지 않아서 전화할지 여부를 알고있었습니다. – skyline33

관련 문제