我正在返回一个通过 jQuery AJAX 调用转换为 JSON 的数据集,一切都很好!我收到的请求是:
{"Table":[[2,"BlackBerry Tour","2013-09-10","2013-09-13","Project"],null]}
对我来说看起来有效,也通过 JSLint 验证器运行它,再次,一切都很好!现在,每当我尝试访问这些数据中的任何一个时,我都会从以下内容中收到 undefined :
var dataObject = data.d //data.d is the response from the server and what is logged above
console.log(dataObject.Table) //undefined
console.log(dataObject["Table"]) //undefined
现在,如果我运行JSON.parse(dataObject)
,我就可以访问它了。然而,现在这是一个问题,因为它将驻留在 IE 上的站点将 IE 置于 IE7 模式,并且JSON
根据 IE 始终未定义(我知道,IE7,它不在我的手中)。
所以我的问题是为什么我不能按原样使用返回的 JSON?为什么我必须在使用它之前通过 JSON.parse 运行它?可根据要求提供更多信息(AJAX 调用、DataSet 转换器等)
AJAX 调用,每个请求:
$.ajax({
type: "POST",
url: "DBManager.asmx/GetAdminList",
contentType: 'application/json',
data: '{"strEmail": "' + strFilter + '" }',
dataType: "json",
success: function (data) {
console.log(data.d); //valid JSON response.
}
});