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

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
json정보를 담은 변수명을 알수없는데 json 파싱 가능한가요?

QA

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

답변 3

본문

 

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 포맷이라 할수 있겠습니다.

 

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