如何从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 ); }, });