如何使用mysql多行创建带有对象的json作为元素

时间:2014-01-15 17:37:31

标签: php mysql json

您好我非常坚持使用php和mysql创建json。我在这里得到了很多类似的问题和答案,但即使花了很多时间我也无法得到我想要的东西。我需要从mysql行输出的json像

{ "application": [ { "ver": "1.0", "name": "myapp1" }, { "ver": "1.2", "name": "myapp2"}]}

我使用以下代码生成json,

$result=mysql_query("SELECT * FROM btrack_transaction");
$no_of_rows = mysql_num_rows($result);
$rows = array();
//retrieve and print every record
while($r = mysql_fetch_assoc($result)){
$rows[] = array('data' => $r);
}
// now all the rows have been fetched, it can be encoded
echo json_encode($rows);

但我的输出看起来像

[[ { "ver": "1.0", "name": "myapp1" }, { "ver": "1.2", "name": "myapp2"}]]

如何获得我想要的json格式。

提前致谢,

1 个答案:

答案 0 :(得分:0)

while ($r = mysql_fetch_assoc($result)) {
    $rows[] = $r;
}
echo json_encode(array('application' => $rows));

你需要摆脱每个元素周围的额外array('data' => $r)包装(我不知道为什么它不会出现在你说的输出中),并添加{ {1}}最后添加该元素。