请在下面找到加载主页时加载的javascript。
$(document).ready(function() {
$.post('../business logic/NewsLogic.php', null, function(response) {
var respObj = $.parseJSON(response);
if (respObj != null) {
alert('I am here ');
}
});
我无法解析JSON我得到错误,该对象不支持属性或方法parseJSON
/ *下面是示例PHP * /
$newsDAO = new NewsDAO();
$newsInfo = new News();
$respArr = array();
$respArr = $newsDAO->showAllNews();
print json_encode($respArr);
其中respArr是一个包含Elements的数组。
答案 0 :(得分:0)
你可以发布$ .post回复吗?
无论如何,我认为将$ .ajax与json一起用作dataType更好:
$(document).ready(function() {
$.ajax({
type:'post',
url: '../business logic/NewsLogic.php',
data: 'somequerystring',
dataType: 'json',
success: function(jsonObject) {
}
})
});
答案 1 :(得分:0)
使用JSON.parse方法
你的代码中的就像
一样var respObj = JSON.parse(response);
********* *********编辑
大多数浏览器都支持JSON.parse(),它在ECMA-262第5版(JS所基于的规范)中定义。它的用法很简单:
var json = '{"result":true,"count":1}',
obj = JSON.parse(json);
alert(obj.count);
对于没有的浏览器,您可以使用json2.js实现它。
如评论中所述,如果你已经在使用jQuery,那么有一个$ .parseJSON函数可以映射到JSON.parse(如果可用)或者在旧浏览器中使用eval的形式。但是,这会执行额外的,不必要的检查,这也是由JSON.parse执行的,所以为了获得最好的全面性能,我建议使用它,如下所示:
var json = '{"result":true,"count":1}',
obj = JSON && JSON.parse(json) || $.parseJSON(json);
这将确保您立即使用本机JSON.parse,而不是让jQuery在将字符串传递给本机解析函数之前对字符串执行完整性检查。