我目前正在尝试使用 morris.js 创建图表。我得到了一个 JSON 对象,需要让它看起来像另一个。Morris.js 需要一个看起来像这样的数组
var day_data = [
{"period": "2012-10-01", "licensed": 3407, "sorned": 660},
{"period": "2012-09-17", "licensed": 3171, "sorned": 660},
{"period": "2012-09-16", "licensed": 3171, "sorned": 676},
{"period": "2012-09-15", "licensed": 3201, "sorned": 656},
{"period": "2012-09-10", "licensed": 3215, "sorned": 622}
];
如果对象看起来令人困惑,这里是链接。它应该是他们网站http://oesmith.github.com/morris.js/上第一个图表数据的缩短版本 。它非常简单,句点是 x 坐标,许可和排序是它们相应行的 y 坐标。
这是给我的数据
var trendline = {"command":[
{"keyValuePairs":["2012-08-10 22:00:00|1884978","2012-08-10 21:00:00|3135378","2012-08-10 18:00:00|2541438","2012-08-09 20:00:00|647082","2012-08-10 19:00:00|3194772","2012-08-09 16:00:00|2782140","2012-08-10 20:00:00|3669924"],
"keyword":"Obama"},
{"keyValuePairs":["2012-08-10 22:00:00|1884978","2012-08-10 21:00:00|3135378","2012-08-10 18:00:00|2541438","2012-08-09 20:00:00|647082","2012-08-10 19:00:00|3194772","2012-08-09 16:00:00|2782140","2012-08-10 20:00:00|3669924"],
"keyword":"Romney"}]}
我需要从 keyValuePairs 中提取所有数据并将其与其关键字相关联,因此看起来像第一个数组
{"period": "2012-10-01", "Obama": 1884978, "Romney": 1884978},
...
...
我知道从趋势线 JSON 对象中获取数据,但我不知道如何构造 morris.js 插件可以使用的新 JSON 对象。更具体地说,我不知道如何使用变量创建 JSON 对象。
trendline.dog = [cat];
将创建一个 json 对象,其字段 dog 设置为值 cat。但是,我需要获取每个关键字(奥巴马、罗姆尼...等)并有一个与之关联的字段并为其设置一个值。由于我不知道字段的数量或它们的名称,因此我不知道如何创建此对象。
假设我不能改变我获得数据的方式,因为我不写那部分。此外,我可以只给我两个关键字(奥巴马/罗姆尼),就像在我的例子中一样,或者我可以给 y 值的任意数量的关键字。
抱歉,篇幅较长。任何帮助,将不胜感激。谢谢你的时间。