繁体   English   中英

将JSON转换成数组以绘制图形

[英]Convert JSON into Array to draw graph

我正在从mysql数据库中读取值,然后通过以下代码导出到JSON

<?php

require_once 'includes/global.inc.php';

    $query = "SELECT * FROM  `chart_sales` ORDER BY id LIMIT 0 , 100";
    $result = mysql_query($query) or die("SQL Error 1: " . mysql_error());
    // get data and store in a json array
    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
        $ph[] = array(
            'timestamp' => $row['timestamp'],
            'ph' => $row['ph']
          );
    }

    echo json_encode($ph);
?>

这就像一个魅力,并为我提供以下输出:

[{"timestamp":"1383755099000","ph":"0.50"},{"timestamp":"1383755299000","ph":"1.50"},{"timestamp":"1383755999000","ph":"1.00"}]

现在我的问题来了。 我想将JSON值转换为数组,以便可以将数据绘制到图形中。

这是绘制图形的代码:

        var d2 = [ [1383755099000, 1], [1383755299000, 1.5], [1383755999000, 1] ];          

        var sales_charts = $('#sales-charts').css({'width':'100%' , 'height':'220px'});
        $.plot("#sales-charts", [
            { label: "pH", data: d1 },
            { label: "EC", data: d2 },
        ]

如您所见,到目前为止,我已经手动为var d2插入了数组。 这样您就可以了解数组的布局方式。 不幸的是,我很少使用JSON。 因此,请,如果您知道一种读取json文件并将其转换为可用数组的方法-请让我知道。

这是一种快速的解决方案。 感谢@fruityp提醒我。

$json = '[{"timestamp":"1383755099000","ph":"0.50"},{"timestamp":"1383755299000","ph":"1.50"},{"timestamp":"1383755999000","ph":"1.00"}]';
    $array = json_decode($json,true);
    $temp = array();
    foreach($array as $a){
        array_push($temp,'['.$a['timestamp'].','.$a['ph'].']');
    }   
    $imp = implode(',',$temp);
    $d2 = '['.$imp.']';

    echo $d2;

您可以使用以下代码将JSON对象转换为数组:

d2 = [{"timestamp":"1383755099000","ph":"0.50"},{"timestamp":"1383755299000","ph":"1.50"},{"timestamp":"1383755999000","ph":"1.00"}];

var result = [];
for (var i in d2) {
    result[i] = [];
    result[i]['timestamp'] = d2[i].timestamp;
    result[i]['ph'] = d2[i].ph;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM