Javascript 从请求URL响应数据获取值

Javascript 从请求URL响应数据获取值,javascript,jquery,Javascript,Jquery,已发送请求的URL- 按照第三方的预期正确获取以下响应数据 BookersID=25010000002;BookersTitle=Mr;bookerfirstname=test1;bookerlastname=test2 我想分别提取“bookerId”、“bookerTitle”、“bookerFirstName”、“bookerLastName”,并在输入字段中显示该值 JS: var bookerID = data[0].BookersID; var bookerTitle = dat

已发送请求的URL-

按照第三方的预期正确获取以下响应数据

BookersID=25010000002;BookersTitle=Mr;bookerfirstname=test1;bookerlastname=test2


我想分别提取“bookerId”、“bookerTitle”、“bookerFirstName”、“bookerLastName”,并在输入字段中显示该值

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请求中获取数据。为此,您需要添加回调函数。(更多信息请参阅)

据我所知,您需要解析数据。它可以通过使用
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"}
]
{BookersID: "250100000002", BookersTitle: "Mr", BookersFirstName: "test1", BookersLastName: "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)
输出:

[
   {name: "BookersID", value: "250100000002"},
   {name: "BookersTitle", value: "Mr"},
   {name: "BookersFirstName", value: "test1"},
   {name: "BookersLastName", value: "test2"}
]
{BookersID: "250100000002", BookersTitle: "Mr", BookersFirstName: "test1", BookersLastName: "test2"}
可以使用和将字符串创建到对象中,然后可以访问对象的属性

const data=“BookersID=25010000002;bookersttitle=Mr;bookerfirstname=test1;bookerlastname=test2”;
const dataObj=data.split(“;”).reduce((acc,kvp)=>
({
…acc,
…(([key,value])=>({[key]:value}))(kvp.split('='))
}), {});
console.log(dataObj);
//访问属性:

console.log(dataObj.BookersID)请提供json数据,说明响应是字符串,而不是json数组。你需要解析它。你得到的是相同的响应吗?“BookersID=25010000002;BookersTitle=Mr;BookersFirstName=test1;BookersLastName=test2”没有其他内容?@AshokVishwakarma请查看所附图片。我将得到这样的响应。
\u convert
功能将工作,只需将您的响应传递到与答案相同的位置。您好。。请检查所附图片。我会得到这样的回应。不确定是需要解析还是直接获取字符串值。我需要在我的评论中从这里获得价值(附上屏幕截图)。thanks@TDG
数据
变量的内部是什么?不确定。。在提交加密的url时。。我将得到这个值作为响应。但不确定如何在输入字段中拆分和显示。我对“数据”变量太糊涂了。@TDG如何提交它?makeAjaxRequest(端点){if(typeof endpoint='undefined'| | endpoint=''返回;返回$.get(endpoint);}Hi。。请检查所附图片。我会得到这样的回应。不确定是需要解析还是直接获取字符串值。我需要在我的评论中从这里获得价值(附上屏幕截图)。谢谢