json_decode 값에서 특정 값을 어떻게 불러오나요?

json_decode 값에서 특정 값을 어떻게 불러오나요?

QA

json_decode 값에서 특정 값을 어떻게 불러오나요?

본문

네이버지도 api를 이용해서 우편번호를 구해오려고 합니다.

 



{
    "status": "OK",
    "meta": {
        "totalCount": 1,
        "page": 1,
        "count": 1
    },
    "addresses": [
        {
        "roadAddress": "경상남도 거제시 연초면 효촌1길 10-1",
        "jibunAddress": "경상남도 거제시 연초면 연사리 93",
        "englishAddress": "10-1, Hyochon 1-gil, Yeoncho-myeon, Geoje-si, Gyeongsangnam-do, Republic of Korea",
        "addressElements": [
            {
            "types": ["SIDO"],
            "longName": "경상남도",
            "shortName": "경상남도",
            "code": ""
            },
            {
            "types": ["SIGUGUN"],
            "longName": "거제시",
            "shortName": "거제시",
            "code": ""
            },
            {
            "types": ["DONGMYUN"],
            "longName": "연초면",
            "shortName": "연초면",
            "code": ""
            },
            {
            "types": ["RI"],
            "longName": "연사리",
            "shortName": "연사리",
            "code": ""
            },
            {
            "types": ["ROAD_NAME"],
            "longName": "효촌1길",
            "shortName": "효촌1길",
            "code": ""
            },
            {
            "types": ["BUILDING_NUMBER"],
            "longName": "10-1",
            "shortName": "10-1",
            "code": ""
            },
            {
            "types": ["BUILDING_NAME"],
            "longName": "",
            "shortName": "",
            "code": ""
            },
            {
            "types": ["LAND_NUMBER"],
            "longName": "93",
            "shortName": "93",
            "code": ""
            },
            {
            "types": ["POSTAL_CODE"],
            "longName": "53209",
            "shortName": "53209",
            "code": ""
            }
        ],
        "x": "128.6521583",
        "y": "34.9070498",
        "distance": 0
        }
    ],
    "errorMessage": ""
}

이런 값이 있을 경우

 


$map_x_point = $data['addresses'][0]['x'];
$map_y_point = $data['addresses'][0]['y'];

 

이렇게 해당 주소의 경도 위도를 구하는 것은 이해했습니다.

여기서 우편번호를 구하려고

 


$postalcode = $data['addresses'][0]['addressElements'][0]['longName'];

 

이런 식으로 해보니 안되더군요..

 

이런 경우에는 어떻게 해야 저 우편번호를 뽑아올 수 있을까요?

이 질문에 댓글 쓰기 :

답변 2

위에 

$postalcode = $data['addresses'][0]['addressElements'][0]['longName'];  이렇게 넣었다는걸 보면  [경상남]도 를 가져오려는것 같은데  $data->addresses[0]->addressElements[0]->longName;  이렇게 하면 됩니다.
다른걸 원하실시 위에소스를 참고하여 가져오면 됩니다.

아~ 제가 배열을 구하면서 시작을 0으로 해야 하는데 위에서 계산하면서 계속 9로 계산했더니 잘못된 거였네요.
님 소스를 멍하니 보다가 멍청한 짓을 했다는 것을 깨달았네요.
감사합니다..

print_r($data)

로 해당 변수에 어떤식으로 들어가있는지 확인해보세요

아~ 내용중 처음 부분이 $data 값입니다. 제가 그 부분은 밝히지 않았네요.. ㅎㅎ
그 $data 값의 배열 중에서 경도, 위도는 뽑아낼 수 있는데 우편번호를 뽑지 못하여 질문드린 겁니다 ^^

답변을 작성하시기 전에 로그인 해주세요.
전체 59,295
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT