json정보를 담은 변수명을 알수없는데 json 파싱 가능한가요?

json정보를 담은 변수명을 알수없는데 json 파싱 가능한가요?

QA

json정보를 담은 변수명을 알수없는데 json 파싱 가능한가요?

본문

 

print_r($_POST);

로 출력결과를 받아보니

 

Array ( [RESULT_CODE] => 0000 [RESULT_MSG] => 성공 [RESULT_ORDERNO] => 101 [RESULT_PAYNO] => c4667a52528887 [payno] => c46623ae7455d68887 [orderno] => 101 [seq] => 1 [respcd] => 0000 [resptext] => test [paymethod] => 0001 [paytype] => 0004 [issuecd] => CCCT [issuenm] => 삼성카드 [payrequestamt] => 1004 [payamt] => 1004 [status] => 0003 [approvaltype] => 0001 [approvaldt] => 2024-07-08 10:48:17 [approvalno] => 181364817 [installmonth] => 00 [vanuniquekey] => 202407340T666358 )

 

이런 json 형태로 뿌려지네요..

 

이 json이 담긴 변수명을 모르는데

화면에 뿌려지는 정보만 가지고 원하는 정보를 추출 가능한가요?

 

예시) orderno 값을 추출

 

 

보통은 

$data = json_decode($변수명, true);
echo $orderno= $data['orderno'];

 

이런식으로 추출하는데,  변수명을 알수 없는경우도 가능한지, 가능하다면 어떤형태로 추출해야하나요?

 

 

이 질문에 댓글 쓰기 :

답변 3

print_r($_POST);로 출력했을때,

위와 같이 array()로 출력되면, json이 아니라 PHP배열로 이미 받으신겁니다.

$_POST 저 자체가 배열변수이기 때문에,

echo $_POST['orderno']; 이렇게 출력하시면 됩니다.

자문자답입니다.

 

 

$headers = apache_request_headers();
if($headers['Content-Type'] == "application/json") {
    $reqParam = json_decode(file_get_contents('php://input'), true);
} else {
    $reqParam = $_REQUEST;
}


$orderno = $reqParam['orderno'];
echo "-->".$orderno;

위의 결과로만 봤을경우 php 의 배열입니다.

혹시 json에서 json_decode 함수를 사용하신건지요?

현결과 값이 php의 배열이기 떄문에 예를들어  orderno 값을 가지고 오고 싶다면 

 

$_POST['orderno]   <-- 요런식으로 해서 가지고 올수 있습니다.

외에의 결과값등은 $_POST['RESULT_CODE']  에서 간단하게 가지고 올수 있습니다.

 

만일 json의 포맷이라하면

[
  { "RESULT_CODE": "0000" },
  { "RESULT_MSG": "성공" },
  { "RESULT_ORDERNO": "101" },
  { "RESULT_PAYNO": "c4667a52528887 " },
  ......................
]

 

이런식의 결과값이 나와야 json 포맷이라 할수 있겠습니다.

 

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

회원로그인

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