web-dev-qa-db-fra.com

Comment obtenir le champ "Data" de xhr.responseText?

J'ai fonction XMLHttpRequest() donnée ci-dessous

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 renvoie la valeur sous la forme 

{
    "$id": "1",
    "ContentEncoding": null,
    "ContentType": null,
    "Data": [
        {
            "$id": "2",
            "email": "[email protected]"
        },
        {
            "$id": "3",
            "email": "[email protected]"
        }
    ],
    "JsonRequestBehavior": 1,
    "MaxJsonLength": null,
    "RecursionLimit": null
}

Comment puis-je obtenir le champ Data à partir de responseText?

26
Midhuna

utilisez JSON.parse () , comme:

var data=xhr.responseText;
var jsonResponse = JSON.parse(data);
console.log(jsonResponse["Data"]);
35
Sudhir Bastakoti

Vous devez d'abord analyser responseText en JSON. Pour cela, vous devez utiliser JSON.parse () . Ensuite, vous pouvez y accéder avec la clé.

var json = JSON.parse(xhr.responseText);
var yourData = json.Data; // or json["Data"]
8
Satpal

Pour obtenir simplement le courrier électronique ou tout autre champ de l'objet Data, utilisez ce qui suit:

data.Data[0].email

EXEMPLE DE TRAVAIL

3
Fizzix

Depuis quelque temps, vous pouvez utiliser:

xhr.responseJSON

sans aucune analyse nécessaire. J'espère que ça aide

2
Igneel64

devrait d'abord analyser la réponse à l'objet json, puis obtenir le champ de données de la réponse

var responseText = JSON.parse(xhr.responseText),
     data = responseText.Data;
0
Raghava

Lorsque vous faites votre demande ajax, vous pouvez fournir dataType option :

dataType: 'json'

Pour une telle demande lorsque vous recevez une réponse:

Si json est spécifié, la réponse est analysée à l'aide de jQuery.parseJSON avant d'être transmise, en tant qu'objet, au gestionnaire de réussite. L'objet JSON analysé est rendu disponible via la propriété responseJSON de l'objet jqXHR.

vous pouvez accéder à vos données comme:

var data =  xhr.responseJSON

Exemple complet:

  $ajax.({
    dataType: 'json',
    success: function( xhr ) {
      var yourData =  xhr.responseJSON;
      console.log( yourData );
    },
  });
0
Eugen Konkov