将MySQL结果转换为JSON

时间:2012-12-01 15:36:34

标签: php mysql json

我有一段代码,它使用下面的代码从xml文件中获取信息:

if (file_exists('locations.xml')) {
    $xml = simplexml_load_file('locations.xml');
    $json = json_encode($xml);
    print_r($json);
} else {
    exit('Failed to open locations.xml.');
}

以下是xml页面的布局

   <locations>
     <location>
       <id>12196</title>
       <uid>010203</uid>
       <lat>34.134103</lat>
       <lng>-118.321694</lng>
      </location>
    <location>

这很好用,现在我要做的就是替换上面的代码直接从数据库中获取信息。并有以下代码:

  $query = mysql_query("SELECT * FROM track ORDER BY id");
  $rows = array();
  while($row = mysql_fetch_assoc($query)) {
   $rows[] = $row;
  }
  print json_encode($rows);

从数据库中检索信息时效果很好。但是我注意到,当我检索数据时,格式略有不同,例如。

使用第一种方法将位置放在结果前面,就像这样。

  {"location":[{"id":"12196"

,第二种方法只返回这个,

  [{"id":"12196","uid":"010203"

我已经尝试了几种方法来获取第二种格式以包含位置,但似乎无法使其工作。我认为我的其余代码使用location标记来分配信息。

任何建议都将不胜感激。

由于

1 个答案:

答案 0 :(得分:3)

尝试

while($row = mysql_fetch_assoc($query)) {
   $rows['location'][] = $row;
  }
  print json_encode($rows);