테스트 사이트 - 개발 중인 베타 버전입니다

json 질문 채택완료

노영진 6년 전 조회 2,391

가지고 온 문구

$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개

6년 전

결론은 해당 데이터는 텍스트라서 직접 자르고 붙이는 방법으로 자료를 가공해야 할 듯합니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

$array = json_decode( json_encode( $result ), 1 );

->

$array = json_decode($result);

echo $array->resultCode;

이렇게 바꿔 보세요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 5개

노영진
6년 전
그렇게 해서 var_dump하면 NULL이 나와서 $array = json_decode( json_encode( $result ), 1 );로 받은 것입니다.
왕계란
6년 전
이미 넘어올 때 json 형태로 넘어온 거 아닌가요?
지금 테스트로 값을 갖고 올 만한 데가 없어서 예전에 답변한 걸 예로 듭니다.
http://exam.dothome.co.kr/temp/wrid_324108.php
보시면 위는 object로 뜨지만 아래는 string으로 뜹니다.
json_decode로 해서 값이 안 나오면 해당 api 제공하는 업체에 문의를 해 보시는 게 좋을 것 같네요.
노영진
6년 전
$naverid="네이버아이디";

$url="https://blog.naver.com/PostTitleListAsync.nhn?blogId=".$naverid."&viewdate=&currentPage=1&categoryNo=&parentCategoryNo=&countPerPage=5";
$contents=file_get_contents($url);



여기서 나오는 {"resultCode":"S","resultMessage": 값에서

resultCode를 못 불러오네요. -.-
왕계란
6년 전
file_get_contents() 이 함수로 값을 갖고 왔으면 string이 맞습니다.
이걸로 해서 리턴된 값은 문자열이어서 정규 표현식으로 갖고 오셔야 합니다.
블로그 좌측이나 우측에 보시면 RSS 2.0 RSS 1.0 이런 게 보입니다.
저거 클릭하셔서 나오는 주소를 curl로 갖고 오면 됩니다.
다만 이게 최근을 기준으로 몇 개를 갖고 오는 것이기 때문에 전체를 다 갖고 오진 못하는 단점이 있습니다.
노영진
6년 전
curl 로 가지고 와도 file_get_contents($url);로 가지고 와도 모두 텍스트네요. json으로 안되네요

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인