Ответ 1
используйте JSON.parse(), например:
var data=xhr.responseText;
var jsonResponse = JSON.parse(data);
console.log(jsonResponse["Data"]);
У меня есть функция 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": "[email protected]"
},
{
"$id": "3",
"email": "[email protected]"
}
],
"JsonRequestBehavior": 1,
"MaxJsonLength": null,
"RecursionLimit": null
}
Как я могу получить поле Data
из responseText
?
используйте JSON.parse(), например:
var data=xhr.responseText;
var jsonResponse = JSON.parse(data);
console.log(jsonResponse["Data"]);
Сначала вам нужно проанализировать responseText в JSON, для этого вы должны использовать 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 становится доступным через свойствоresponseJSON
объектаjqXHR
.
Вы можете получить доступ к своим данным, как:
var data = xhr.responseJSON
Полный пример:
$ajax.({
dataType: 'json',
success: function( xhr ) {
var yourData = xhr.responseJSON;
console.log( yourData );
},
});
var jsonResponse = JSON.parse(xhr.responseText);
console.log(jsonResponse);