2013-04-12 66 views
0

工作反正是有这个JSON数据转换:格式化JSON数据到海军报

[ 

    { 
     "year":"1999", 
     "value":"3.0" 
    }, 
    { 
     "year":"2008", 
     "value":"0.9" 
    } 

] 

喜欢这个:

{ 
    "data": [[1999, 3.0], [2008, 0.9]] 
} 

检查类型值( “3.0” 和3.0,串并整数)。

我很难弄清楚,或者甚至有可能。

这是我得到的JSON数据: 我有“数据”表在我的数据库,其中有“年”和“价值”的专栏中,我让他们从数据库,如:

$sql = mysql_query("SELECT * FROM data"); 
     $rows = array(); 
     while($r = mysql_fetch_assoc($sql)) { 
      $rows[] = $r; 
     } 
     $encodedJson = json_encode($rows); 

$encodedJson = json_encode($rows); 
print $encodedJson; 

我试图从我的数据创建一个图表,并且json数据必须正确形成才能在Flot中工作。 所有帮助表示赞赏!

+0

是的,当然这是可能的。 –

+0

在php中使用哈希来构建数据结构可能更简单。这样json_encode()将正确输出结构。 –

+0

你想在哪里做到这一点?在PHP或JavaScript – ncubica

回答

3

你可以地图你的对象数组的多维数组:

var mapped = originalData.map(function (obj) { 
    return [ parseInt(obj.year, 10), parseFloat(obj.value) ]; 
}); 

var newData = { 
    data: mapped 
}; 
+0

工作就像一个魅力。谢谢。 – user2035638

0

尝试。 PHP:

$sql = mysql_query("SELECT * FROM data"); 
$rows = $sql->results_array(); 
$return_args = array(); 
foreach($rows as $row){ 
    $tmp[0] = $row['year']; 
    $tmp[1] = $row['value']; 
    array_push($return_args,$tmp); 
} 

$encodedJson = json_encode($return_args); 

print $encodedJson; 
1

可能的解决方法

var a = [ 

     { 
      "year":"1999", 
      "value":"3.0" 
     }, 
     { 
      "year":"2008", 
      "value":"0.9" 
     } 

    ]; 

    var b = []; 
    $.each(a, function(_index, _item){ 
     var c = [_item["year"], _item["value"]]; 
     b.push(c); 
    }); 

console.log(b)