php json_encode不会导致真实对象 /将数组字符串变成真实对象 /将php数组转换为JSON
-
28-09-2019 - |
题
这是我的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);
});
});
解决方案
我看到您正在使用jQuery,如果您希望数据作为JSON对象回到您身边,则需要做2件事中的1件事。
将标题(“ 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");
如果您的PHP代码失败并输出HTML,这将告诉JQUERY致电您的错误处理程序。您真的应该使用$ .ajax,我不知道为什么有人使用$。
其他提示
JSON 是 字符串。如果您想迭代它,则需要对其进行解码。
不隶属于 StackOverflow