2016-10-31 2 views
-3

다음 디코드 JSON 배열이 있습니다. 컨텍스트 내에서 "유형"에 액세스해야하며 페이로드의 각 값을 반복해야합니다. 어떻게해야합니까? PHP JSON 배열을 통한 디코딩 및 루핑

{ 
    "RequestHeader": 
     { 
        "mess": "am putting it on my wall....", 
        "created_time": "2010-08-24T09:01:25+0000" 
        }, 
    "context" : 

         { 
          "type": "friends,circles" 

         } 

    "payload" [ {12345},{12345} ,{2345} ] 

    } 

나는 다음과 같은 시도,하지만 당신은 json_decode 방법을 사용하면 출력이 배열 중첩됩니다

$decoded = json_decode($json_string); 

for ($i=0;$i<payload.length;++$i) 

{ 

$id=$decoded->payload[$i]; 
//do some operation with the id 

} 
+0

오류보고를 사용합니다. PHP가 아닙니다. – PeeHaa

+1

유효하지 않습니다. 서버 스크립트를 계속 진행하기 전에 JSON –

+0

[This answer] (http://stackoverflow.com/a/12970107/6213452)이 도움이 될 수 있습니다. –

답변

-1

예를 컨텍스트 유형에 접근 할 수 그래서 당신이 할 필요가 작동하지 않습니다

echo $decoded["context"]["type"]; 

그리고 페이로드에 루프

다음 다음

01,232을 할 필요가
+0

upvote로 어떻게 끝났는지 잘 모르겠지만 여러 수준에서 잘못되었습니다. – PeeHaa

0

먼저 제공된 JSON이 유효하지 않습니다. 당신이 JSON 제공자와의 문제는 당신이 확인 확인하기 위해 데이터

<?php 

$json = <<<'JSON' 
{ 
    "RequestHeader": { 
     "mess": "am putting it on my wall....", 
     "created_time": "2010-08-24T09:01:25+0000" 
    }, 
    "context": { 
     "type": "friends,circles" 
    }, 
    "payload": [ 
     12345, 
     12345, 
     2345 
    ] 
} 
JSON; 

$data = json_decode($json, true); 

$type = $data['context']['type']; 
var_dump($type); 
foreach($data['payload'] as $id) { 
    var_dump($id); 
} 

기억

에 액세스하는 것은 매우 쉬운 것입니다 해결 한 후 가정으로 올바른 일이

{ 
    "RequestHeader": { 
     "mess": "am putting it on my wall....", 
     "created_time": "2010-08-24T09:01:25+0000" 
    }, 
    "context": { 
     "type": "friends,circles" 
    }, 
    "payload": [ 
     12345, 
     12345, 
     2345 
    ] 
} 

과 같아야 실제로 데이터가 그것에 접근하기 전에 존재한다. isset($data['context']['type']) 당신이 절대적으로 무결성이 아니라면.