从XMLHttpRequest对象返回自定义对象

时间:2012-09-28 21:22:01

标签: javascript

我从javascript ajax调用中返回一个“Employee”对象..

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

var serverResponse = xhReq.responseText;

返回的是JSON数据。我想返回一个具有Employee对象结构的Object,以便我可以用javascript编写..

var name = serverResponse.Name;

这可以做或者是我唯一选择解析返回的JSON字符串吗?不,我不能使用jquery(它以这种方式返回对象)它必须只是javascript。

1 个答案:

答案 0 :(得分:2)

jQuery在需要JSON响应时会自动将responseText解析为对象。

在vanilla JS中,您可以使用JSON.parse解析它:

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

如果您需要与IE< = 7:Crockford's JSON2

兼容,也请包含此库

关于eval

也可以使用evalresponseText字符串解析为一个对象,以便与IE&lt; = 7兼容,而不包含额外的代码,但eval是邪恶的。< / p>

当然,如果你的服务器总是回应良好的JSON,那就没问题了。我个人会避免eval并使用正确的JSON.parse,但是如果您想使用eval来获得IE&lt; = 7兼容性而不包含额外代码,则可以按以下方式执行:< / p>

var response = eval('(' + xhReq.responseText + ')'),
    name = response.Name;