我从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。
答案 0 :(得分:2)
jQuery在需要JSON响应时会自动将responseText
解析为对象。
在vanilla JS中,您可以使用JSON.parse
解析它:
var response = JSON.parse(xhReq.responseText),
name = response.Name;
如果您需要与IE< = 7:Crockford's JSON2
兼容,也请包含此库eval
也可以使用eval
将responseText
字符串解析为一个对象,以便与IE< = 7兼容,而不包含额外的代码,但eval
是邪恶的。< / p>
当然,如果你的服务器总是回应良好的JSON,那就没问题了。我个人会避免eval
并使用正确的JSON.parse
,但是如果您想使用eval
来获得IE&lt; = 7兼容性而不包含额外代码,则可以按以下方式执行:< / p>
var response = eval('(' + xhReq.responseText + ')'),
name = response.Name;