[英]Converting XML response from Oracle server to JSON
我公司提供一項服務,該服務在發送序列號時返回有關產品的數據(不確定在Oracle服務器上運行是否重要)。 可以通過在此URL上附加序列號來訪問該服務:
由於該服務需要身份驗證,因此我將序列號請求從HTML頁面發送到服務器上運行的PHP。
我正在從HTML頁面向PHP頁面進行此AJAX調用。 serialsearch var是用戶輸入的SN:
$.ajax({
"async": true,
"url": "./serialsearch.php?serialsearch=" + serialsearch,
"method": "GET",
"headers": {
"accept": "application/json",
"cache-control": "no-cache",
}
}).done(function(response) {
var renderedHtml = template(response.SerialInfo);
var context = $("#result").html(renderedHtml);
});
PHP看起來像這樣:
<?php
$url = 'https://example.com/searchserial/v1/' . $_GET['serialsearch'];
$info = array('Accept: application/json', 'Content-Type: application/json; charset=UTF-8', 'Cache-control: no-cache');
$get_field_string = http_build_query($info, '', '&');
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_USERPWD,'Authorization: Basic blahblahblahblahblahblah=');
curl_setopt($ch, CURLOPT_HTTPHEADER,array($get_field_string));
curl_setopt($ch, CURLOPT_HEADER,1);
$exec = curl_exec($ch);
print_r($exec);
curl_close($ch);
?>
一切正常,除了服務器僅返回XML,但我需要JSON,以便可以將響應數據插入HTML頁面上的Handlebar模板。
當我在Postman中測試服務並選擇JSON時,它在第一個字符上出錯,這通常是服務器發送的標頭,而不是純JSON。 XML視圖顯示所有相應的數據。
在將其發送回進行AJAX調用的HTML之前,是否需要在PHP中將XML轉換為JSON? 將其轉換為HTML頁面? 看起來將XML轉換為JSON並不是最直接的事情。
是的,您需要在PHP方面進行轉換。 只需將響應讀取為XML並轉換為JSON
$xml = simplexml_load_string($exec, "SimpleXMLElement", LIBXML_NOCDATA);
echo json_encode($xml);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.