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

这是我的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对象返回给你,你需要做两件事之一。

  1. 将标题(“Content-Type:application / json”)添加到您的php文件中,这将告诉jquery将其转换为json对象而不是文本

  2. 在$ .post中添加第四个参数,

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

这将告诉jquery如果它的NOT json调用你的error handling程序,就像你的php代码失败并输出html一样。 你真的应该使用$ .ajax,我不知道为什么有人使用$ .post,你不能做任何有意义的error handling。

JSON 字符串。 如果你想能够迭代它,那么你需要解码它。