[英]How can I return an array/json object containing json objects through an ajax php call?
[英]How can I parse a JSON object containing a PHP array of objects?
我创建了一个AJAX函数,该函数与分页链接一起使用,可以动态加载新页面的帖子,并且一切运行良好,但我不知道如何解析这样的JSON对象。
这是作为JSON传递的PHP样式:
Array (
[0] => stdClass Object (
['var1'] => val1
['var2'] => var2
)
[1] => stdClass Object (
['var1'] => val1
['var2'] => var2
)
[3] => stdClass Object (
['var1'] => val1
['var2'] => var2
)
)
并通过以下方式传递给它:
$response = json_encode( array( 'success' => true, 'posts' => $new_posts ) );
$new_posts
是我要解析的数组。
有人可以告诉我如何访问这些变量及其值吗? 谢谢。
更新: 这是JSON字符串
我正在尝试从JavaScript访问它们。
更新2:当我使用var posts = JSON.parse( response.posts );
我在Google Chrome Javascript控制台中收到以下错误:
Uncaught SyntaxError: Unexpected end of input
更新3:我刚刚检查了Firebug,它似乎只将它作为JSON响应文本返回:
{"success":true,"posts":[]}
我假设您要通过JavaScript进行访问,因为您在PHP中具有此功能。 在您的XHR成功回调中,将响应插入JSON.parse();。 并按以下方式访问所有内容
var data = JSON.parse(recievedData); // newer browsers, optionally you can use jQuery or eval()
console.log(data); // test;
// loop through all data
for(var i=0;i<data.length;++i) {
console.log(data[i].var1); // expects val1
console.log(data[i].var2); // expects val2
}
//access one bit
console.log(data[0].var1);
jQuery响应方法(有多种方法可以实现)
var data = jQuery.parseJSON(recievedData)
由于您使用的是jQuery,因此最好的方法是使用parseJSON
方法:
var respObj = jQuery.parseJSON(response);
JSON是有效的javascript,因此最直接的解决方案(假设您相信json的来源为100%)是简单地eval()即可。
var response = eval(the_json);
if (response.success){
var posts = response.posts
}
如果您使用的是jQuery之类的库,则可以使用内置方法更安全地评估json字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.