json 질문 채택완료
가지고 온 문구
$curl = curl_init();
$method = "GET";
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type: application/json;charset=UTF-8", "Authorization:".$authorization));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
curl_close($curl);
$array = json_decode( json_encode( $result ), 1 );
// 받은 데이터를 json 디코드로 $array로 받았습니다. 배열이 아니라 string이라서 그런지
값을 못 불러다 쓰겠네요.
아래는
curl로 가지고 온 데이터를 var_dump 하면 나오는 문구입니다.
string(3439) "{"resultCode":"S","resultMessage":"abc","postList":"5"}"
그런데
echo $array->resultCode;
echo $array['resultCode'];
이런식으로 하면 값을 가지고 오지 못하네요
답변 2개
$array = json_decode( json_encode( $result ), 1 );
->
$array = json_decode($result);
echo $array->resultCode;
이렇게 바꿔 보세요.
답변에 대한 댓글 5개
지금 테스트로 값을 갖고 올 만한 데가 없어서 예전에 답변한 걸 예로 듭니다.
http://exam.dothome.co.kr/temp/wrid_324108.php
보시면 위는 object로 뜨지만 아래는 string으로 뜹니다.
json_decode로 해서 값이 안 나오면 해당 api 제공하는 업체에 문의를 해 보시는 게 좋을 것 같네요.
$url="https://blog.naver.com/PostTitleListAsync.nhn?blogId=".$naverid."&viewdate=¤tPage=1&categoryNo=&parentCategoryNo=&countPerPage=5";
$contents=file_get_contents($url);
여기서 나오는 {"resultCode":"S","resultMessage": 값에서
resultCode를 못 불러오네요. -.-
이걸로 해서 리턴된 값은 문자열이어서 정규 표현식으로 갖고 오셔야 합니다.
블로그 좌측이나 우측에 보시면 RSS 2.0 RSS 1.0 이런 게 보입니다.
저거 클릭하셔서 나오는 주소를 curl로 갖고 오면 됩니다.
다만 이게 최근을 기준으로 몇 개를 갖고 오는 것이기 때문에 전체를 다 갖고 오진 못하는 단점이 있습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인