来自PHP的奇怪JSON输出json_encode()

时间:2014-10-16 11:58:37

标签: php json

我正在使用PHP玩JSON。我使用json_encode()函数创建JSON。 Hovewer我有奇怪的JSON输出:

[

    {
        "0": "1",
        "1": "test",
        "2": "test",
        "ID": "1",
        "title": "test",
        "imageUrl": "test"
    },
    {
        "0": "2",
        "1": "welcome",
        "2": "http://overkiller.pl/Smokopedia/Images/01.jpg",
        "ID": "2",
        "title": "welcome",
        "imageUrl": "http://overkiller.pl/Smokopedia/Images/01.jpg"
    }

]

为什么我得到这种JSON如何从中删除这些数字? 我的 PHP 代码:

<?php
    header('Content-type: application/json');
    $connection = mysql_connect('localhost', 'root', 'sam1');
    $array = array();
    if($connection)
    {
        mysql_select_db("Smokopedia");
        $result = mysql_query("Select * from mainMenu");
        if($result)
        {
            while ($row = mysql_fetch_array($result)) 
            {
                array_push($array, $row);
            }
            echo json_encode($array);
        }else
        {
            $errorJson = array(
                    message => 'Result is empty or incorrect',
                    type => 'error'
                );
            echo json_encode($errorJson);
        }
    }
    mysql_close();

?>

2 个答案:

答案 0 :(得分:5)

mysql_fetch_array包括数字索引键和列名索引键。

将其更改为mysql_fetch_assoc,您将获得所需的最终结果。


请注意,不推荐使用整个mysql扩展,您应该考虑切换到PDO或Mysqli。

答案 1 :(得分:2)

问题是你要获取一个数组,其中包括数字索引和字符串键。

更改为mysql_fetch_assoc

while ($row = mysql_fetch_ssoc($result)) 

附注:不推荐使用mysql_*库。考虑升级到现代API,例如MySQLi或PDO。