我试图从REST API中的JSON文件中检索数据。我正在使用Morris js创建一个简单的条形图。我很难弄清楚如何正确地格式化javascript数组。将值从JSON移到javascript数组
该图表这样产生:
Morris.Bar({
element: 'myfirstchart',
data: [
{ year: '2008', value: 20 },
{ year: '2009', value: 10 },
{ year: '2010', value: 5 },
{ year: '2011', value: 5 },
{ year: '2012', value: 20 }
],
xkey: 'year',
ykeys: ['value'],
labels: ['Series A']
});
我一直试图保存在变量从JSON结构值:
var USD = data.d.results[0].ExchangeCross;
var USD2 = data.d.results[0].ApprovedRate;
为了将它们添加到我尝试添加图表他们这样的阵列:
var obj = { year: USD, value: USD2 };
然后将data:[]
更改为data:obj
。这不起作用。最佳解决方案是对我需要的所有值运行each
函数,然后将它们绘制到图表中。
编辑forEach function
:
$(document).ready(function() {
$.ajax({
url: "http://intra.site.com/_vti_bin/ListData.svc/ExchangeRates?$orderby=Modified%20desc",
headers: { 'accept': 'application/json;odata=verbose', 'content-type': 'application/json;odata=verbose'},
success: function(data){
var params = {
element: 'myfirstchart',
data: [],
xkey: 'year',
ykeys: ['value'],
labels: ['Series A']
};
var data = JSON.parse(data);
data.d.results.forEach(function(element) {
var obj = { "year": element.ExchangeCross, "value": element.ApprovedRate };
params.data.push(obj);
});
Morris.Bar(params);
}
});
});
这似乎不起作用,我不确定数据是否正确解析。我将编辑最初的帖子以包含您的建议。 – TietjeDK 2014-11-24 08:11:47
不,在这种情况下,只需删除'var data = JSON.parse(data);'行。因为你已经有了解析的json。 – Abhitalks 2014-11-24 08:15:26
Thx一堆!这很好用! – TietjeDK 2014-11-24 08:16:31