json_encode只返回数组的第一个元素?

时间:2011-03-10 14:36:09

标签: php json

我正在使用json_encode从数组创建一个JSON对象。它们的数组长了几百个元素,但json_encode似乎只返回数组的第一个元素。

这是json_decode的限制,还是我使用错误的语法来读取JSON对象?

一点代码: 我用PHP创建数组:

$getarrayforjson = mysql_fetch_array($result);

在javascript中,我把它变成了一个变量:

var my_array = <?php echo json_encode($getarrayforjson); ?>

在控制台中输入'my_array'给我一个很好看的JSON响应,但只针对第一个元素。

当我在代码中使用JSON时,比如my_array.title或my_array [4],我总能得到相同的结果。

我认为我的语法错误,但我不确定如何修复它。我是新手使用json_encode。

2 个答案:

答案 0 :(得分:11)

$getarrayforjson = mysql_fetch_array($result);

只有一个结果。试试这个:

<?php
while( $row = mysql_fetch_array( $result ) ) {
    $json[] = $row;
}
echo json_encode( $json );

答案 1 :(得分:0)

尝试使用 print_r()print() 代替 echo

var my_array = <?php print_r(json_encode($getarrayforjson)); ?>

我自己也遇到过这个问题,它也让我感到困惑。 json_encode() 返回一个字符串,因此我希望 echo 会返回要解码的整个字符串,但在某些情况下它不会。