簡體   English   中英

從請求URL響應數據中獲取價值

[英]Get value from Request URL response data

發送的請求的URL- https: //www.example.com/detail.guest.html?ppc =FDE466920006DCEFA697BF982FC982C9C87C5B257ECB2230CBF4D6D6CA740C7B894D5795F70DED928ED3B00C1F3F77DF974DFD73882DEBDD7EC063B23C6A43E6A43E6A43E6A43A6A43A6A79A43A6A79E79A79A1E1160E79A79E1160A1E1160E1E1E0160E1E1E1E0E0E0E0A1E1E1E1E3E6A3A1E6A6B1E1A1E1A1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1B

正確獲得第三方期望的以下響應數據。

BookersID = 250100000002; BookersTitle =先生; BookersFirstName = test1的; BookersLastName = TEST2

在此處輸入圖片說明


我想分別提取“ BookersID”,“ BookersTitle”,“ BookersFirstName”,“ BookersLastName”,並在輸入字段中顯示此值。

JS:

var bookerID = data[0].BookersID;
var bookerTitle = data[0].BookersTitle;
var bookerFname = data[0].BookersFirstName;
var bookerLname = data[0].BookersLastName;
console.log("BookersID", bookerID);
console.log("BookersTitle", bookerTitle);

但是顯示值出現錯誤。

請讓我知道如何在控制台日志中獲取該值?

謝謝

首先,您需要從xhr請求中獲取數據。 為此,您需要添加回調函數。 (有關更多信息,請參見jQuery.get()文檔

$.get( endpoint, function( data ) { // add callback to handle response
 // ... parse data here
});

據我了解,您需要解析數據。 可以通過使用String.prototype.split方法和簡單的映射來完成。

console.log(data) // BookersID=250100000002;BookersTitle=Mr;BookersFirstName=test1;BookersLastName=test2
var parsed = data.split(';').map(part => ({ name: part.split('=')[0], value: part.split('=')[1] }));

console.log(parsed);

輸出:

[
   {name: "BookersID", value: "250100000002"},
   {name: "BookersTitle", value: "Mr"},
   {name: "BookersFirstName", value: "test1"},
   {name: "BookersLastName", value: "test2"}
]

如果要獲取數據作為對象:

var parsedObject = parsed.reduce(
    (obj, item) => Object.assign(obj, {[item.name]: item.value}) ,{});
// {BookersID: "250100000002", BookersTitle: "Mr", BookersFirstName: "test1", BookersLastName: "test2"}

如果得到相同的響應,則需要編寫一個實用程序函數以將其轉換為對象

function _convert(responseString) {
  var _obj = {};

  responseString.split(";").forEach(function(pair){
     var _pairArr = pair.split("=");
     _obj[_pairArr[0]] = _pairArr[1];
  });

  reuturn _obj;
}

var responseString = "BookersID=250100000002;BookersTitle=Mr;BookersFirstName=test1;BookersLastName=test2";
var obj = _convert(responseString);

obj['BookersID']; // 250100000002
// or
obj.BookersID; // 250100000002

注意:僅當您的回復格式與您提到的格式完全相同時,此選項才有效。

var str = 'BookersID=250100000002;BookersTitle=Mr;BookersFirstName=test1;BookersLastName=test2';
var data = {};
var parsed = str.split(';').map(part => { let x = part.split("="); data[x[0]] = x[1]; console.log(x) });
console.log(data)

輸出:

{BookersID: "250100000002", BookersTitle: "Mr", BookersFirstName: "test1", BookersLastName: "test2"}

您可以使用.reduce().split()將字符串創建為對象,然后可以訪問其屬性

 const data = "BookersID=250100000002;BookersTitle=Mr;BookersFirstName=test1;BookersLastName=test2"; const dataObj = data.split(';').reduce((acc, kvp) => ({ ...acc, ...(([key, value]) => ({[key]: value}))(kvp.split('=')) }), {}); console.log(dataObj); // access properties: console.log(dataObj.BookersID); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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