json 질문

json 질문

QA

json 질문

답변 2

본문

가지고 온 문구

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

이렇게 바꿔 보세요.

이미 넘어올 때 json 형태로 넘어온 거 아닌가요?
지금 테스트로 값을 갖고 올 만한 데가 없어서 예전에 답변한 걸 예로 듭니다.
http://exam.dothome.co.kr/temp/wrid_324108.php
보시면 위는 object로 뜨지만 아래는 string으로 뜹니다.
json_decode로 해서 값이 안 나오면 해당 api 제공하는 업체에 문의를 해 보시는 게 좋을 것 같네요.

$naverid="네이버아이디";

$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를 못 불러오네요. -.-

file_get_contents() 이 함수로 값을 갖고 왔으면 string이 맞습니다.
이걸로 해서 리턴된 값은 문자열이어서 정규 표현식으로 갖고 오셔야 합니다.
블로그 좌측이나 우측에 보시면 RSS 2.0 RSS 1.0 이런 게 보입니다.
저거 클릭하셔서 나오는 주소를 curl로 갖고 오면 됩니다.
다만 이게 최근을 기준으로 몇 개를 갖고 오는 것이기 때문에 전체를 다 갖고 오진 못하는 단점이 있습니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
filter #json ×
전체 150
© SIRSOFT
현재 페이지 제일 처음으로