这是我的PHP代码,它正在获取mongodb
的集合列表$list = $db->dbname->listCollections();
$result = array();
$i=0;
foreach ($list as $thiscollection) {
$result[$i++] = $thiscollection->getName();
}
echo json_encode( $result );
我在回调中执行console.log,这就是我所看到的。
["fruits", "dogs", "cars", "countries"]
问题是这是一个字符串,而不是一个数组。我需要迭代这些值。我怎么把它变成一个真实的对象或者让php给我json而不是php数组,所以我可以在它上面使用parseJSON。
感谢。
JS:
$.post('/ajax-database.php', function (data) {
console.log($.parseJSON(data));
$.each(data, function (key, value) {
console.log(value);
});
});
答案 0 :(得分:3)
我看到你正在使用jquery,如果你想让数据作为json对象返回给你,你需要做两件事之一。
将标题(“Content-Type:application / json”)添加到您的php文件中,这将告诉jquery将其转换为json对象而不是文本
在$ .post中添加第四个参数,
$.post('/ajax-database.php', function (data) { console.log($.parseJSON(data)); $.each(data, function (key, value) { console.log(value); }); }, "json");
这将告诉jquery如果它的NOT json调用你的错误处理程序,就像你的php代码失败并输出html一样。你真的应该使用$ .ajax,我不知道为什么有人使用$ .post,你不能做任何有意义的错误处理。
答案 1 :(得分:0)
JSON 是字符串。如果你想能够迭代它,那么你需要解码它。