0

无论如何要转换这个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中工作。感谢所有帮助!

4

3 回答 3

3

您可以将对象数组映射到多维数组:

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

var newData = {
  data: mapped
};
于 2013-04-12T18:52:13.403 回答
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)
于 2013-04-12T18:54:18.850 回答
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;
于 2013-04-12T18:54:07.770 回答