2013-04-11 2 views
0

JSON에서 요소에 액세스하는 데 문제가 있습니다. 내가 PERSONNAME 또는 realname 같은 배열에 액세스 할 수있는 방법 -PHP JSON 문자열 구문 분석

$raw_json = '{ 
     "players": [ 
      { 
       "steamid": "76561197960435530", 
       "communityvisibilitystate": 3, 
       "profilestate": 1, 
       "personaname": "Robin", 
       "lastlogoff": 1365134746, 
       "profileurl": "http://steamcommunity.com/id/robinwalker/", 
       "avatar": "http://media.steampowered.com/steamcommunity/public/images/avatars/f1/f1dd60a188883caf82d0cbfccfe6aba0af1732d4.jpg", 
       "avatarmedium": "http://media.steampowered.com/steamcommunity/public/images/avatars/f1/f1dd60a188883caf82d0cbfccfe6aba0af1732d4_medium.jpg", 
       "avatarfull": "http://media.steampowered.com/steamcommunity/public/images/avatars/f1/f1dd60a188883caf82d0cbfccfe6aba0af1732d4_full.jpg", 
       "personastate": 0, 
       "realname": "Robin Walker", 
       "primaryclanid": "103582791429521412", 
       "timecreated": 1063407589, 
       "loccountrycode": "US", 
       "locstatecode": "WA", 
       "loccityid": 3961 
      } 
    } 
}'; 
$data = json_decode($raw_json); 
print $data->players{'realname'}; 

내 질문은 : 여기 내 코드입니까?

답변

3

대괄호 대신 중괄호를 사용하고 있습니다. 올바른 구문은 말했다

$data->players['realname'] 

, 당신은 너무 키를 액세스하는 중 하나가 작동하지 않을 배열 내부의 객체가 될 것입니다. 당신은 당신이 그것을 수정해야하므로 또한, 당신의 JSON가 유효이

$data->players[0] 

같은 것을 필요 했어. JSON을 검증 할 수있는 유용한 도구이 http://json.parser.online.fr/

+0

http://jsonlint.com/ – Cypher

0

이 시도입니다 :

$data = json_decode($raw_json); 
echo $data->players['realname']; 

를 아니면,

print_r($data); 

또는

var_dump($data); 
1

우선하여 데이터 형식을 볼 수 있습니다 JSON은 유효한 형식이 아니며 디코드가 작동하지 않습니다. 시도해보십시오.

<?php 
$raw_json = ' 
{ 
    "players": [ 
     { 
      "steamid": "76561197960435530", 
      "communityvisibilitystate": 3, 
      "profilestate": 1, 
      "personaname": "Robin", 
      "lastlogoff": 1365134746, 
      "profileurl": "http://steamcommunity.com/id/robinwalker/", 
      "avatar": "http://media.steampowered.com/steamcommunity/public/images/avatars/f1/f1dd60a188883caf82d0cbfccfe6aba0af1732d4.jpg", 
      "avatarmedium": "http://media.steampowered.com/steamcommunity/public/images/avatars/f1/f1dd60a188883caf82d0cbfccfe6aba0af1732d4_medium.jpg", 
      "avatarfull": "http://media.steampowered.com/steamcommunity/public/images/avatars/f1/f1dd60a188883caf82d0cbfccfe6aba0af1732d4_full.jpg", 
      "personastate": 0, 
      "realname": "Robin Walker", 
      "primaryclanid": "103582791429521412", 
      "timecreated": 1063407589, 
      "loccountrycode": "US", 
      "locstatecode": "WA", 
      "loccityid": 3961 
     } 
    ] 
} 
'; 
$data = json_decode($raw_json); 
print_r($data->players[0]); // or 
echo $data->players[0]->personaname; 
?>