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로 작업을 했습니다.
</p>
<p><?php
$jsonData = file_get_contents("json.json");
$json = json_decode($jsonData, true);</p>
<p> echo '<h3>Employee Data</h3>';</p>
<p> $output = "";</p>
<p> foreach($json['rsp'] as $rsp)
{
$output.="ID :".$rsp['folderId']. "
";
}
echo $output;
?></p>
<p>
그런데 아래와 같은 에러 메시지가 나오네요...
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']))
이런식으로 조건을 걸어주셔야 오류가 발생하지 않습니다.
그래서 소스를 정리하자면
</p>
<p><?php</p>
<p> $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']."
";
}
echo $output;
?></p>
<p>
답변에 대한 댓글 2개
그냥 무시하셔도 됩니다.
2)위 배열을 보시면
rsp[_content]
rsp[_content][folder]
rsp[_content][folder][folderId]
rsp[_content][folder][username]
rsp[_content][folder][name]
이러한 구조의 배열이 됩니다.
이건 배열구조를 잘 보시면 이해되리라 봅니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
1. 주신 소스에 보면 $a. 변수가 있는데 이건 어떤의미인가요?
2. json 데이타에 보면 아래 처럼 되어있는데 중간에있는 _content는 folder 안에있는 내용을 출력할때 언급할 필요가 없는건가요?
답변 감사합니다. :)
"rsp": {
"_content": {
"folder": {