首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从json编码字符串转换为[value,value],[value,value]

从json编码字符串转换为[value,value],[value,value]
EN

Stack Overflow用户
提问于 2014-02-11 15:43:10
回答 2查看 78关注 0票数 0

我试图使用flot从我的SQL数据库中绘制数据图表,这是使用php收集的,然后是json编码的。

目前的情况如下:

代码语言:javascript
复制
 [{"month":"February","data":482},{"month":"March","data":0}] 

然而,要使flot操作数据,则需要以

代码语言:javascript
复制
[X AXIS VALUE, Y AXIS VALUE],[X AXIS VALUE, Y AXIS VALUE],[X AXIS VALUE, Y AXIS VALUE]

等等。

我该怎么改变呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-11 15:57:55

基本过程是将数据转换为数组(或对象,如果您愿意的话),然后取出每个绘图点的数据并将其插入数组中。然后,将该数组转换为字符串。下面是一个例子:

代码语言:javascript
复制
// SAMPLE DATA
$json_string = '[{"month":"February","data":482},{"month":"March","data":0}]';

// DEFAULT
$all_points_array = array();

// JSON DECODE THE STRING AND TURN IT INTO AN ARRAY
$json_array = json_decode($json_string, true);

// LOOP THROUGH THE PLOT POINTS AND ADD EACH SET TO AN ARRAY
foreach ($json_array AS $plot_points) {
    $all_points_array[] = '['.$plot_points['month'].','.$plot_points['data'].']';
}

// CONVERT THE ARRAY TO A STRING, SEPARATED BY COMMAS
$all_points = implode(',', $all_points_array);

// PRINT OUT YOUR STRING
echo $all_points;
票数 1
EN

Stack Overflow用户

发布于 2014-02-11 15:49:45

使用map返回数组:

代码语言:javascript
复制
var flotData = data.map(function (el) {
  return [el.month, el.data];
});

console.log(flotData); // [["February", 482], ["March", 0]]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21706358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档