论坛首页 Web前端技术论坛

Ext plotr 画曲线图 JSON如何转换?

浏览 3373 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-03-10  
这个是Action返回的Json字符串
({'results':[
{'name':'铜','list':[
  {'date':'2008-01','value':'1'},
  {'date':'2008-02','value':'2'},
  {'date':'2008-03','value':'3'}
]},
{'name':'银','list':[
 {'date':'2008-01','value':'2'},
 {'date':'2008-02','value':'4'},
 {'date':'2008-03','value':'6'}
]}]})

这个是plotr中需要定义的格式。
var dataset = {
'铜':[[2008-01, 1], [2008-02, 2], [2008-03, 3]],
'银':[[2008-01, 2], [2008-02, 4], [2008-03, 6]]
};

由JSon到dataset这种格式转换该如何写?
下面是我转换代码,但是有问题:画一条线没有问题,画两条线就不行了,不知道该怎么组合成上面的dataset
var dataset = {};
var ticks = [];
var aa = [];
for (var i=0; i<records.length; i++){   
    for (var j=0; j<records[i].data.list.length; j++){
        ticks[j] = {v:j, label:records[i].data.list[j].date};
        aa[j] = [j,parseFloat(records[i].data.list[j].value)];
    }
    dataset[records[i].data.name] = aa;
}
   发表时间:2008-03-11  
没有人做过类似的东西么?
0 请登录后投票
   发表时间:2008-03-11  

这是我做过的一段代码,你参考一下吧:

        var dataset = {};
        var ticks = [];
        var aa = [];
        for (var i=0; i<records.length; i++){
            aa[i] = [i,parseFloat(records[i].data.cost)];
            ticks[i] = {v:i, label:records[i].data.day};
        }
        dataset['帐龄'] = aa;

 

0 请登录后投票
   发表时间:2008-03-11  
stworthy 写道

这是我做过的一段代码,你参考一下吧:

        var dataset = {};
        var ticks = [];
        var aa = [];
        for (var i=0; i<records.length; i++){
            aa[i] = [i,parseFloat(records[i].data.cost)];
            ticks[i] = {v:i, label:records[i].data.day};
        }
        dataset['帐龄'] = aa;

 


我贴的代码里有类似于 您写的这段代码。我主要是想显示多条曲线

0 请登录后投票
   发表时间:2008-03-13  
godson_2003 写道
var dataset = {};
var ticks = [];
var aa = [];
for (var i=0; i<records.length; i++){   
    for (var j=0; j<records[i].data.list.length; j++){
        ticks[j] = {v:j, label:records[i].data.list[j].date};
        aa[j] = [j,parseFloat(records[i].data.list[j].value)];
    }
    dataset[records[i].data.name] = aa;
}

 

把list[j].date改成list[j].data.date,list[j].value改成list[j].data.value试试。

 

给一段参考代码吧,不过你这个ticks要定义清楚。

var records = json['results'];

var dataset = {};
var ticks = [];
var aa = [];
for (var i=0; i<records.length; i++){
	var name = records[i]['name'];
	var list = records[i]['list'];
	
	var aa = [];
	var ticks = [];
	for (var j=0; j<list.length; j++){
		aa[j] = [list[j]['date'],list[j]['value']];
		ticks[j] = {v:j, label:list['date']};
	}
	dataset[name] = aa;
}
 
0 请登录后投票
   发表时间:2008-03-13  
OK了,感谢楼上
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics