$data = "<QRYRESULT>
<ISSUCCESS>Y</ISSUCCESS>
<EBLCUSTOMER ACCOUNTNO='11111'>
<CUSTACCTNO>121212</CUSTACCTNO>
<ACCTSTATUS>active</ACCTSTATUS>
<CCYDESC>BDT</CCYDESC>
<BALANCE>9999</BALANCE>
<AVAILABLEBALANCE>99</AVAILABLEBALANCE>
<CUSTOMERNAME>cus_name</CUSTOMERNAME>
<AMOUNTONHOLD>1000</AMOUNTONHOLD>
<ODLIMIT>99</ODLIMIT>
</EBLCUSTOMER>
</QRYRESULT>";
이것은 변환하려고하는 XML 문자열입니다. 나는 folloung 코드를 사용했다.PHP에서 XML to JSON 변환
$result = str_replace(array("\n", "\r", "\t"), '', $data);
$xml = simplexml_load_string($result);
$object = new stdclass();
$object->webservice[] = $xml;
$result = json_encode($object);
header('content-Type: application/json');
echo $result;
그리고 다음 json 데이터가 나타납니다.
{
"webservice": [
{
"ISSUCCESS": "Y",
"CUSTSUMMARY": {
"@attributes": {
"ACCOUNT": "11111"
},
"IDACCOUNT": "1010101",
"CODACCTCURR": "BDT",
"NUMBALANCE": "99999",
"ACCTDESC": "22222",
"PRDNAME": "name"
}
}
]
}
하지만 "@attributes"는 원하지 않습니다. 아래 출력을 원합니다 :
{
"QRYRESULT": {
"ISSUCCESS": "Y",
"EBLCUSTOMER": {
"-ACCOUNTNO": "11111",
"CUSTACCTNO": "121212",
"ACCTSTATUS": "active",
"CCYDESC": "BDT",
"BALANCE": "9999",
"AVAILABLEBALANCE": "99",
"CUSTOMERNAME": "cus_name",
"AMOUNTONHOLD": "1000",
"ODLIMIT": "99"
}
}
}
어떻게하면됩니까?
은 내가 내 컨트롤러 클래스의 jsonSerialize() 함수를 작성하고 함수에서 호출 않았다 어떤 프레임 워크를 CodeIgniter를 사용하고 있습니다로하는 전 $ xml = $ this-> jsonSerialize();와 같은 json 변환에 대한 XML 작업 그런 다음 내 코드는 남지만 다음과 같은 오류가 발생합니다. '심각한 오류 : 정의되지 않은 메소드 호출 CI_Benchmark :: attributes() @hakre – Ishrak
Codeigniter없이 먼저 실행하여 작동 여부를 확인할 수 있도록하십시오. 클래스 이름 ** CI_Benchmark **는 현재 Codeigniter와 혼용되어 오도 된 것을 나타낼 수 있습니다. – hakre