【问题标题】:PHP Array to JSONPHP 数组转 JSON
【发布时间】:2011-09-13 04:32:20
【问题描述】:

我正在尝试从 mysql 查询构建 JSON 对象。我正在努力的 JSON 结构应该如下所示:

   {
        "a": [
            {
                "user": "alb",
                "time": "2011-09-12 05:56:36"
            },
            {
                "user": "arg",
                "time": "2011-09-12 05:56:36"
            }
             ]
        "b": [
            {
                "user": "blah",
                "time": "2011-09-12 05:56:36"
            },
            {
                "user": "bleh",
                "time": "2011-09-12 05:56:36"
            }
             ]
}

但是,我的代码总是返回一个包裹在数组中的 JSON 对象,如下所示:

[
       {
            "a": [
                {
                    "user": "alb",
                    "time": "2011-09-12 05:56:36"
                },
                {
                    "user": "arg",
                    "time": "2011-09-12 05:56:36"
                }
                 ]
            "b": [
                {
                    "user": "blah",
                    "time": "2011-09-12 05:56:36"
                },
                {
                    "user": "bleh",
                    "time": "2011-09-12 05:56:36"
                }
                 ]
    }
]

这是我正在使用的 php 代码:

<?php
$json_data = array();
foreach($blogs as $blog)
{
    $sql    = "SELECT * from users";
    $query  = mysql_query($sql);
    $ablog   = array();
    while ($row = mysql_fetch_assoc($query))
    {
        $json_element = array(
        "user"=> $row[username] ,
        "time"=> $row[time]
        );
        array_push($ablog,$json_element);
    }
    $eblog = array($blog => $ablog);
    array_push($json_data,$eblog);

}
$json_output = json_encode($json_data);
print $json_output;
?>

我想知道:为什么我将 JSON 对象包装在一个数组中?我在上面的代码中做错了什么?

谢谢。

【问题讨论】:

  • 两个json都无效需要在"b"前加逗号:
  • 你应该发布你的程序的实际输出

标签: php mysql arrays json


【解决方案1】:

以下两行创建单元素关联数组并将单元素数组附加到更大的$json_data 数组:

$eblog = array($blog => $ablog);
array_push($json_data,$eblog);

相反,只需向原始数组添加一个新的键/值对:

$json_data[$blog] = $ablog;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-05
    • 1970-01-01
    • 2016-08-01
    • 2015-07-02
    • 2016-07-07
    • 2013-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多