以下に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"]);
最初にJSONのresponseTextを解析する必要があります。そのためには、 JSON.parse() を使用する必要があります。その後、キーを使用してアクセスできます。
var json = JSON.parse(xhr.responseText);
var yourData = json.Data; // or json["Data"]
しばらくの間、次を使用できます:
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 );
},
});