json php를 이용해 출력하려고하는데 에러가...
본문
아래가 json 데이타입니다.
{
"rsp": {
"_content": {
"folder": {
"folderId": "4c3ba964-60c3-4349-94d0-ff86db2d47c9",
"username": "ferrogate",
"name": "Cool stuff",
"description": "Stuff I have collected",
"items": 0,
"created": "2009-07-12T19:52:15.000Z"
}
},
"stat": "ok"
}
}
이걸 folderId만 출력하려고 해서 아래와 같이 php로 작업을 했습니다.
<?php
$jsonData = file_get_contents("json.json");
$json = json_decode($jsonData, true);
echo '<h3>Employee Data</h3>';
$output = "";
foreach($json['rsp'] as $rsp)
{
$output.="ID :".$rsp['folderId']. "<br />";
}
echo $output;
?>
그런데 아래와 같은 에러 메시지가 나오네요...
Warning: Illegal string offset '_content' in /home/joongang/public_html/json.php on line 11
어떻게하면 제대로 출력을 할 수 있을까요?
감사합니다.
!-->답변 2
현재 foreach($json['rsp'] as $rsp) 이부분으로는 _content아래부분이 나오니까 folder에 대한부분만 출력이 됩니다.
해당부분은 $rsp['folder']['folderId'] 에 배열이 존재하므로
$rsp['folder']['folderId'] 이러한 형태로 확인을 해야 보이겠지요
그리고 illegal string offset 이런 오류 같은경우
배열부분에 하나하나 체크하게 끔넣어줘야 오류가 발생하지 않습니다.
if(isset($rsp['folder']))
이런식으로 조건을 걸어주셔야 오류가 발생하지 않습니다.
그래서 소스를 정리하자면
<?php
$jsonData = file_get_contents("json.json");
$json = json_decode($jsonData, true);
echo '<h3>Employee Data</h3>';
$output = "";
//print_r($json);
foreach($json['rsp'] as $rsp)
{
if(isset($rsp['folder']))
$output.= $a." - ID : ".$rsp['folder']['folderId']."<br />";
}
echo $output;
?>
print_r( $json );
해서 배열 구조 확인해보세요