如何将JSON数据转换为数组以绘制图表?

时间:2018-03-14 10:13:32

标签: javascript php json

我是一个php查询,它创建从运行的SQL查询接收的数据的JSON数据。使用此查询

使用此查询创建JSON数据
echo json_encode($res->fetch_all(MYSQLI_ASSOC), JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT );

现在我想使用fusionchart绘制图表,我需要将此数据转换为数组。我尝试了一个示例JS代码将JSON数据转换为JS数组并且它可以工作

var data = { "timestamp": "2016-09-23", "value1": "0", "value2": "0", ........., "value49": "0", "value50": "0" };
   var arr = [];
   for (elem in data) {
        arr.push(data[elem]);
    }
    console.log(arr);

现在在 data 变量中我需要从php代码传递数据。这只是我手动输入的记录之一。有超过一百万条记录,我需要转换它们。我是怎么做到的?

2 个答案:

答案 0 :(得分:1)

您可以使用Object.values()函数从对象中获取值。

var data = { "timestamp": "2016-09-23", "value1": "0", "value2": "0", "value49": "0", "value50": "0" };

var arr = Object.values(data);
console.log(arr);

对于PHP

您可以使用以下代码仅在PHP中发送值并省略密钥。 json_decodeJSON字符串转换为数组。 implode将数组转换为字符串。

<?php

$str = '{ "timestamp": "2016-09-23", "value1": "val1", 
        "value2": "val2", "value49": "val49", "value50": "val50" }';
$myJSON = json_decode($str, true);

echo '[' . implode(",", $myJSON) . ']';

结果:

  

[2016年9月23日,VAL1,val2的,val49,val50]

答案 1 :(得分:1)

您可以使用parseJSON()功能:

var obj = jQuery.parseJSON( '{ "name": "John" }' );
alert( obj.name === "John" );