【发布时间】: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"前加逗号:
-
你应该发布你的程序的实际输出