对象没有'不支持属性或方法parseJSON
Object doesn't support property or method parseJSON
请在下面找到加载主页时加载的javascript。
$(document).ready(function() {
$.post('../business logic/NewsLogic.php', null, function(response) {
var respObj = $.parseJSON(response);
if (respObj != null) {
alert('I am here ');
}
});
我无法解析JSON,我得到一个错误,对象不支持属性或方法解析JSON
/*下面是PHP*/的示例
$newsDAO = new NewsDAO();
$newsInfo = new News();
$respArr = array();
$respArr = $newsDAO->showAllNews();
print json_encode($respArr);
其中respArr是一个包含元素的数组。
您能发布$.post响应吗?
无论如何,我认为使用$.ajax和json作为dataType会更好,比如:
$(document).ready(function() {
$.ajax({
type:'post',
url: '../business logic/NewsLogic.php',
data: 'somequerystring',
dataType: 'json',
success: function(jsonObject) {
}
})
});
使用JSON.parse方法
在你的代码中,它会像一样适合
var respObj = JSON.parse(response);
*********编辑*********
大多数浏览器都支持JSON.parse(),这是ECMA-262第五版(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在将字符串传递给本机解析函数之前对其进行健全性检查。
来源:用JavaScript解析JSON?
相关文章:
- 为什么NgModelController属性/方法以$开头
- 如何使用设置属性方法在jquery中更改css
- 全局向对象添加属性/方法
- AngularJS $http.delete 在“类型错误:无法分配给只读属性'方法'”中中断
- 添加属性/方法的明确最佳方法
- 扩展类时继承而不是覆盖属性/方法
- Javascript子类对象不保留基类的属性/方法
- 将模型属性方法发送到客户端 Sails Angular
- 错误:参数 4 的值无效.属性“方法”:意外属性
- 类型错误:无法读取 nodejs 应用程序中未定义的属性“方法”
- 属性/方法无法初始化indexedDB
- 在javascript中定义属性方法的适当模式;类”;
- 创建两个函数来计算对象属性/方法
- 当getElementById返回null时,取消对属性/方法的访问
- 自定义属性方法如何在Sails js中工作
- 通过js中的数组属性方法进行迭代
- 为什么要添加属性/方法到视图模型AFTER定义
- 在Angular中,在闭包中引用服务属性/方法最合适的方式是什么?
- 列出一个对象的所有属性/方法
- Javascript:添加属性方法问题