如何从xhr.responseText获取“数据”字段?
我有下面给出的XMLHttpRequest()
函数
var searchFriendRequests = function (userid) { var xhr = new XMLHttpRequest(); xhr.open('GET', 'http://localhost:6344/api/Registeration/searchFriendrequests?userid=' + userid, false); xhr.setRequestHeader("Content-Type", "text/xml"); xhr.onreadystatechange = function () { if (xhr.readyState == 4) { if (xhr.status == 200) { var data = xhr.responseText; } } }; xhr.send(null); }
其中xhr.responseText
返回值为
{ "$id": "1", "ContentEncoding": null, "ContentType": null, "Data": [ { "$id": "2", "email": "anu@gmail.com" }, { "$id": "3", "email": "anu@gmail.com" } ], "JsonRequestBehavior": 1, "MaxJsonLength": null, "RecursionLimit": null }
如何从responseText
获取Data
字段?
使用JSON.parse() ,如:
var data=xhr.responseText; var jsonResponse = JSON.parse(data); console.log(jsonResponse["Data"]);
您首先需要在JSON中解析responseText,为此您应该使用JSON.parse() 。 然后你可以使用密钥访问它。
var json = JSON.parse(xhr.responseText); var yourData = json.Data; // or json["Data"]
要从Data
对象中简单地获取电子邮件或任何其他字段,请使用以下命令:
data.Data[0].email
工作实例
有一段时间你可以使用:
xhr.responseJSON
无需任何解析。 希望能帮助到你
应首先解析对json对象的响应,然后从响应中获取数据字段
var responseText = JSON.parse(xhr.responseText), data = responseText.Data;
当您发出ajax请求时,您可以提供dataType
选项 :
dataType: 'json'
收到回复时请求此类请求:
如果指定了
json
,则在作为对象传递给成功处理程序之前,使用jQuery.parseJSON
解析响应。 解析的JSON对象通过jqXHR
对象的responseJSON
属性提供。
您可以访问您的数据,如:
var data = xhr.responseJSON
完整示例:
$ajax.({ dataType: 'json', success: function( xhr ) { var yourData = xhr.responseJSON; console.log( yourData ); }, });