Javascript 将Graphite JSON输出数组转换为Rickshaw Graph兼容格式

Javascript 将Graphite JSON输出数组转换为Rickshaw Graph兼容格式,javascript,json,rickshaw,Javascript,Json,Rickshaw,我正在使用Graphite Render API将JSON格式的数据返回到node.js,我想将其传递给Rickshaw进行绘图。我使用grockets.js通过socket.io将数据传递给客户端。我使用socket.io成功地测试了人力车,通过使用他们的一个示例传递手动数据。我的问题是,Graphite返回的JSON格式不是Rickshaw期望的格式,我不确定如何转换它 石墨输出如下所示: [ { "target": "localhost_localdomain.cp

我正在使用Graphite Render API将JSON格式的数据返回到node.js,我想将其传递给Rickshaw进行绘图。我使用grockets.js通过socket.io将数据传递给客户端。我使用socket.io成功地测试了人力车,通过使用他们的一个示例传递手动数据。我的问题是,Graphite返回的JSON格式不是Rickshaw期望的格式,我不确定如何转换它

石墨输出如下所示:

[
    {
        "target": "localhost_localdomain.cpu-0.cpu-idle", 
        "datapoints": [
        [99.999698, 1392728820],
        [100.000898, 1392728880],
        [99.999968, 1392728940],
        [99.299848, 1392732360]
        ]
    }
]
我需要采用以下格式:

[
    {
        "target": "localhost_localdomain.cpu-0.cpu-idle", 
        "datapoints": [
        { "x": 99.999698, "y": 1392728820 },
        { "x": 100.000898, "y": 1392728880 },
        { "x": 99.999968, "y": 1392728940 },
        { "x": 99.299848, "y": 1392732360 }
        ]
    }
]
我说这是一个对象数组对吗?任何帮助或指导都将不胜感激


谢谢

考虑到需要转换的只是数据点,这应该相当容易:

var myData = [{
    "target": "localhost_localdomain.cpu-0.cpu-idle",
        "datapoints": [
        [99.999698, 1392728820],
        [100.000898, 1392728880],
        [99.999968, 1392728940],
        [99.299848, 1392732360]
    ]
}];

var transformedPoints = myData[0].datapoints.map(function (pt) {
    return {
        x: pt[0],
        y: pt[1]
    };
});

myData[0].datapoints = transformedPoints;

console.log(myData);

这里有一个

感谢马特的及时回复,这正是我想要的。但是,由于某些原因,我运行myData[0].datapoints.map时显示为未定义…知道为什么吗?我已将myData记录到console,以仔细检查它是否符合我描述的格式,它看起来与您的小提琴一样,这很奇怪。好吧,我认为这是因为它在函数中作为字符串而不是对象传递,所以我无法映射它。我应该通过类似JSON.parse的东西来解决这个问题吗?@user2576960:是的,
JSON.parse
应该可以。