【问题标题】:how to use json_encode如何使用 json_encode
【发布时间】:2012-05-09 19:00:15
【问题描述】:

我正在处理带有动态数据(从数据库中检索到的值)的 highcharts。 通过编写查询,我能够从表中检索以下数据

Item   2011   2012
pen     5      7
pencil  4      20
eraser  6      43

我想将上述信息存储在以下结构中并传递到另一个页面

[{ name:'pen', data: [5,7]},{ name:'pencil', data: [4,20]},{ name:'eraser', data: [6,43]}]";

我想将以上数据推送到下钻高图。

有没有办法可以生成这种格式?我试过使用 json_encode 但无法成功。 我可以使用 json_encode 来实现吗?

更新 这种方式我试过了

while($row = mysql_fetch_assoc($result))
  {
  $rows[]= $row;

  }
echo json_encode($rows);

得到了

[{"Item":"pen","2011":"5","2012":"7"},{"Item":"pencil","2011":"4","2012":"20"},{"Item":"eraser","2011":"6","2012":"43"}]

【问题讨论】:

  • json_encode 编码 JSON,而不是您那里的 Javascript 对象表达式(未加引号的键)。不过,这并不重要。
  • 看起来更好的方法是序列化数据。
  • @JohnConde 我更新了一些信息。退房
  • @ven,在我的回答中,我展示了如何获得您要求的确切输出。

标签: php jquery json highcharts


【解决方案1】:

json_encode 是一种将数组转换为 JSON 格式的便捷方法。要获得您提供的输出,您将需要一个数组数组。每个子数组都有键“name”和“data”,其中“name”是 Item 列,“data”是另一个包含 2011 年和 2012 年值的数组。

$results = mysql_query("...");
$arr = array();

while ($row = mysql_fetch_assoc($results))
{
    $name = $row['Item'];
    $data = array($row['2011'], $row['2012']);

    $arr[] = array('name' => $name, 'data' => $data);
}

echo json_encode($arr);

【讨论】:

    【解决方案2】:
    1. 遍历数据库结果并将结果放入数组中
    2. JSON 编码数组

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-26
      • 2017-07-19
      • 1970-01-01
      • 1970-01-01
      • 2018-05-28
      • 1970-01-01
      • 2011-11-09
      相关资源
      最近更新 更多