0

JavaScript ajax呼び出しから「従業員」オブジェクトを返しています..

var xhReq = new XMLHttpRequest();
xhReq.open("POST", "MobileClientService.svc/REST/TestReturnEmployee", false);
xhReq.send(null);

var serverResponse = xhReq.responseText;

返されるのは JSON データです。javascript で記述できるように、Employee オブジェクトの構造を持つオブジェクトを返したいと思います。

var name = serverResponse.Name;

これは可能ですか、それとも返された JSON 文字列を解析するのは私の唯一の選択肢ですか? いいえ、jquery を使用することはできません (その方法でオブジェクトを正常に返します)。javascript のみである必要があります。

4

1 に答える 1

2

jQueryresponseTextは、JSON 応答を予期すると、自動的に をオブジェクトに解析します。

バニラ JS では、次のように解析できますJSON.parse

var response = JSON.parse(xhReq.responseText),
    name = response.Name;

IE<=7 との互換性が必要な場合は、このライブラリも含めてください: Crockford の JSON2


eval

eval文字列をオブジェクトに解析してresponseText、追加のコードを含めずに IE<=7 との互換性を持たせることもできますが、eval悪です。

もちろん、サーバーが整形式の JSON を常にエコーする場合、問題にはなりません。eval個人的には適切なを避けて使用したいと思いますが、追加のコードを含めずに IE<=7 との互換性のために使用しJSON.parseたい場合はeval、次のように実行できます。

var response = eval('(' + xhReq.responseText + ')'),
    name = response.Name;
于 2012-09-28T21:38:20.543 に答える