webentwicklung-frage-antwort-db.com.de

Wie bekomme ich ein "Daten" -Feld von xhr.responseText?

Ich habe unten die XMLHttpRequest()-Funktion

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);
}

dabei gibt xhr.responseText den Wert als zurück 

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

Wie kann ich das Data-Feld von der responseText erhalten?

26
Midhuna

verwenden Sie JSON.parse () wie:

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

Sie müssen zunächst responseText in JSON analysieren. Dazu sollten Sie JSON.parse () verwenden. Dann können Sie mit der Taste darauf zugreifen.

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

Um einfach die E-Mail oder ein anderes Feld vom Data-Objekt abzurufen, verwenden Sie Folgendes:

data.Data[0].email

ARBEITSBEISPIEL

3
Fizzix

Seit einiger Zeit können Sie Folgendes verwenden:

xhr.responseJSON

ohne Parsing erforderlich. ich hoffe es hilft

2
Igneel64

sollte die Antwort auf das json-Objekt zuerst analysieren und dann das Datenfeld aus der Antwort abrufen

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

Wenn Sie Ihre Ajax-Anfrage stellen, können Sie die Option dataType angeben:

dataType: 'json'

Für eine solche Anfrage, wenn Sie eine Antwort erhalten:

Wenn json angegeben ist, wird die Antwort mit jQuery.parseJSON analysiert, bevor sie als Objekt an den Erfolgshandler übergeben wird. Das analysierte JSON-Objekt wird über die responseJSON-Eigenschaft des jqXHR-Objekts verfügbar gemacht.

sie können auf Ihre Daten zugreifen wie:

var data =  xhr.responseJSON

Vollständiges Beispiel:

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