[英]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.