php json_encode不会导致真实对象/将数组字符串转换为真实对象/将php数组转换为json - php

这是我的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件事。

将header(“ Content-Type:application / json”)添加到您的php文件中,这将告诉jquery将其转换为json对象而不是文本
在$ .post中添加第四个参数,

$ .post('/ ajax-database.php',函数(数据){
console.log($。parseJSON(data));
$ .each(数据,函数(键,值){
console.log(value);
});
},“ json”);

这将告诉jquery如果错误处理程序不是NOT json,则调用它,例如您的php代码失败并输出html。您确实应该使用$ .ajax,我不知道为什么有人使用$ .post,您无法进行任何有意义的错误处理。

PHP-MySQL结果转换为JSON - php

我试图了解如何将MySQL结果转换为JSON格式,以便以后可以在Javascript中使用此JSON来构建HTML表。但是我的代码只是产生大量的空值,我还不明白为什么。$result = mysqli_query($con, "SELECT * FROM Customers"); $test = json_encode($result);…

json_encode网址失败 - php

有人在this bug附近吗?echo json_encode(array('url'=>'/foo/bar')); {"url":"\/foo\/bar"} 我使用Zend_Json and Zend_Json_Expr以便我甚至可以在js对象中获取回调函数-但我无法获得…

PHP:将数组值加在一起 - php

我相信这比标题听起来要难一些,但我可能完全错了。我有一个像这样的数组:[["londrina",15],["cascavel",34],["londrina",23],['tiradentes',34],['tiradentes',21]] 我希望能够采用通用…

PHP-将日期插入日期时间字段 - php

我已在数据库中使用datetime字段存储日期,使用PHP将“今天的日期”插入该字段的正确方法是什么?干杯, 参考方案 我认为您可以使用php date()函数

PHP-如何获取类的成员函数列表? - php

如果我知道班级的名字。有没有办法知道类的成员函数列表? 参考方案 get_class_methods()是你的朋友