簡體   English   中英

將XML響應從Oracle服務器轉換為JSON

[英]Converting XML response from Oracle server to JSON

我公司提供一項服務,該服務在發送序列號時返回有關產品的數據(不確定在Oracle服務器上運行是否重要)。 可以通過在此URL上附加序列號來訪問該服務:

https://example.com/searchserial/v1/W123456789

由於該服務需要身份驗證,因此我將序列號請求從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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM