正确获得第三方期望的以下响应数据。
BookersID = 250100000002; BookersTitle = Mr; 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);
但是显示值出现错误。
请让我知道如何在控制台日志中获取该值?
谢谢
答案 0 :(得分:1)
首先,您需要从xhr请求中获取数据。为此,您需要添加回调函数。 (jQuery.get() documentation中的更多信息)
$.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"}
答案 1 :(得分:0)
如果得到相同的响应,则需要编写一个实用函数以将其转换为对象
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
注意:仅当您的回复格式与您提到的格式完全相同时,此选项才有效。
答案 2 :(得分:0)
build job: 'job_name', parameters: [string(name: 'yourStringParameter', value: "$variable_name")]
输出:
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)
答案 3 :(得分:0)
您可以使用.reduce
和.split
将字符串创建为对象,然后可以访问其属性
const data = "BookersID=250100000002;BookersTitle=Mr;BookersFirstName=test1;BookersLastName=test2",
dataObj = data.split(';').reduce((acc, kvp) =>
({...acc, ...(([key, value]) => ({[key]: value}))(kvp.split('='))}),
{});
console.log(dataObj);
// access properties:
console.log(dataObj.BookersID);