`
godson_2003
  • 浏览: 18630 次
文章分类
社区版块
存档分类
最新评论

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

阅读更多
这个是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;
}
分享到:
评论
5 楼 godson_2003 2008-03-13  
OK了,感谢楼上
4 楼 stworthy 2008-03-13  
<div class='quote_title'>godson_2003 写道</div><div class='quote_div'>var dataset = {};<br/>var ticks = [];<br/>var aa = [];<br/>for (var i=0; i&lt;records.length; i++){    <br/>    for (var j=0; j&lt;records[i].data.list.length; j++){<br/>        ticks[j] = {v:j, label:records[i].data.list[j].date};<br/>        aa[j] = [j,parseFloat(records[i].data.list[j].value)];<br/>    }<br/>    dataset[records[i].data.name] = aa;<br/>}</div><p> </p><p>把list[j].date改成list[j].data.date,list[j].value改成list[j].data.value试试。</p><p> </p><p>给一段参考代码吧,不过你这个ticks要定义清楚。</p><pre name='code' class='js'>var records = json['results'];

var dataset = {};
var ticks = [];
var aa = [];
for (var i=0; i&lt;records.length; i++){
var name = records[i]['name'];
var list = records[i]['list'];

var aa = [];
var ticks = [];
for (var j=0; j&lt;list.length; j++){
aa[j] = [list[j]['date'],list[j]['value']];
ticks[j] = {v:j, label:list['date']};
}
dataset[name] = aa;
}
</pre> 
3 楼 godson_2003 2008-03-11  
<div class='quote_title'>stworthy 写道</div><div class='quote_div'><p>这是我做过的一段代码,你参考一下吧:</p><pre name='code' class='js'>        var dataset = {};
        var ticks = [];
        var aa = [];
        for (var i=0; i&lt;records.length; i++){
            aa[i] = [i,parseFloat(records[i].data.cost)];
            ticks[i] = {v:i, label:records[i].data.day};
        }
        dataset['帐龄'] = aa;
</pre><p> </p></div><p><br/>我贴的代码里有类似于 您写的这段代码。我主要是想显示多条曲线<br/></p>
2 楼 stworthy 2008-03-11  
<p>这是我做过的一段代码,你参考一下吧:</p><pre name='code' class='js'>        var dataset = {};
        var ticks = [];
        var aa = [];
        for (var i=0; i&lt;records.length; i++){
            aa[i] = [i,parseFloat(records[i].data.cost)];
            ticks[i] = {v:i, label:records[i].data.day};
        }
        dataset['帐龄'] = aa;
</pre><p> </p>
1 楼 godson_2003 2008-03-11  
没有人做过类似的东西么?

相关推荐

Global site tag (gtag.js) - Google Analytics