首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自PHP json_encode()的奇怪JSON输出

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

Stack Overflow用户
提问于 2014-10-16 11:58:36
回答 2查看 105关注 0票数 0

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

代码语言:javascript
复制
[

    {
        "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代码:

代码语言:javascript
复制
<?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();

?>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-16 12:00:21

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

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

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

票数 5
EN

Stack Overflow用户

发布于 2014-10-16 12:00:40

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

更改为mysql_fetch_assoc

代码语言:javascript
复制
while ($row = mysql_fetch_ssoc($result)) 

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26403819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档