제목 | json 질문드립니다. | ||
---|---|---|---|
카테고리 | PHP | ||
글쓴이 | 손씨가문 | 작성시각 | 2019/12/20 17:57:31 |
|
|||
안녕하세요. 하나만 질문드리겠습니다. 현재 CURL로 해당 JSON 데이터를 가져왔는데, NULL이 떠서요. 혹시 어느 부분이 잘못되었는지 알 수 있을까요? print_r로 그냥 찍었을 시에 문제가 없는데 json_decode 시에는 NULL이 뜹니다. JSON 유효성 검사를 했을때는 문제가 없다고 뜹니다. 밑에는 소스 코드입니다. NULL이뜨는 이유를 구글링 해보고, 따라해봤는데도 그대로 NULL이어서요...
URL로 접근 시 {"list":[{"name":"홍길동","sex":"1","birth":"19990910","gunbul":"육군","rank":"훈련병","branch":"보병","termy":"1","termm":"0","tel":"010 11112222","email":"","course":"94","retymd":"20101130","mID":"dongki","area":"경상남도 함안군","gunbun":"1001"},{"name":"임꺽정","sex":"1","birth":"19761111","gunbul":"육군","rank":"소령","branch":"기갑","termy":"12","termm":"7","tel":"010 12345678","email":"","course":"94","retymd":"20220131","mID":"dongki2","area":"경기도 화성시","gunbun":"5678"}]} $curl = curl_init(); $timeout = 5; // 0으로 하면 시간제한이 없다. curl_setopt($curl, CURLOPT_URL, $serverUrl); curl_setopt($curl, CURLOPT_POST, 0); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $timeout); $result = curl_exec($curl); $result =iconv("EUC-KR","UTF-8", $result); print_r($result); $data = json_decode( trim($result), true ); var_dump($data);
decode시에 null이뜨는데 이유를 모르겠네요. |
|||
다음글 | $.parseJSON 파싱시 "유효하지 않은 ... (1) | ||
이전글 | IF문으로 빈값이 아닌 경우만, INSERT를 하려는데... (2) | ||
변종원(웅파)
/
2019/12/20 18:10:31 /
추천
0
iconv 하지말고 풀어보세요.
|
손씨가문
/
2019/12/20 18:18:09 /
추천
0
풀었을때도 동일합니다. 한글은 깨지구요 ㅠ |
홍구2
/
2019/12/21 01:21:36 /
추천
0
한글쪽 상태가 안 좋은 것 같네요, 그런데 여기 올려준 글에서는 예시가 이미 UTF-8로 변환되어 있어서 재연이 안됩니다. 전체를 iconv 하지마시고 값에 해당되는 것만 콕 찝어서 변환해주면 되지 않을까요? |
손씨가문
/
2019/12/22 15:31:00 /
추천
0
답변감사합니다. $result = curl_exec($curl);
// print_r($result);
// $data = json_decode( $result, true );
$data = json_decode( trim($result), true );
echo $data;
foreach($data->list as &$row) {
foreach($row as &$r) {
$r = iconv("EUC-KR","UTF-8", $r);
}
}
그런데 이미 $data = json_decode( trim($result), true ); 이걸 한 순간 NULL값으로 아무값이 없어서 foreach로 넘어가지 않습니다.
일단 받아오는 쪽 환경은 EUC-KR이고
이쪽환경은 UTF-8이라 한글이 깨지는 것 같구요.ㅠㅠ
|