![](/img/trans.png)
[英]How to display table from the database using json response in Android? (I'm getting JsonArray Fail error in this code)
[英]How do I use a Java JSONArray with D3 and Dimple, passed using Spring MVC? I'm getting a 404 error
使用Spring MVC,我在控制器中有一個JSONArray,我可以使用view.addObject將其傳遞到視圖,如下所示:
@RequestMapping("/graphWeek")
public ModelAndView getGraphWeek(){
JSONArray tweetsForWeek = getGraphWeekData();
ModelAndView mv = new ModelAndView("graphWeek");
mv.addObject("tweetsForWeek", tweetsForWeek);
return mv;
}
在我的jsp視圖中,我有這個:
var svg = dimple.newSvg("#bar", 800, 500);
var src= ${tweetsForWeek};
console.log(src);
d3.json(src, function (error, data) {
var barChart = new dimple.chart(svg, data);
barChart.addCategoryAxis("x", ["Day", "Topic"]);
barChart.addMeasureAxis("y", "Tweets");
barChart.addSeries("Topic", dimple.plot.bar);
barChart.addLegend(100, 10, 510, 20, "right");
barChart.width = 600;
barChart.height = 400;
barChart.draw();
});
我添加了一個console.log(src)調用,以確保該視圖正被數組接收。 但是我的圖形沒有顯示,這給了我一個錯誤。 這是加載視圖的結果,顯示了控制台日志和firebug中的錯誤:
因此,您可以在控制台中看到視圖正在接收該數組,但是d3沒有正確處理該數組,有人知道是什么原因導致此錯誤嗎? 任何幫助將不勝感激,謝謝。
您在這里不需要d3.json
。 您已經有數據了。
var svg = dimple.newSvg("#bar", 800, 500);
var src= ${tweetsForWeek};
console.log(src);
var barChart = new dimple.chart(svg, src); //<-- you have your data already
barChart.addCategoryAxis("x", ["Day", "Topic"]);
barChart.addMeasureAxis("y", "Tweets");
barChart.addSeries("Topic", dimple.plot.bar);
barChart.addLegend(100, 10, 510, 20, "right");
barChart.width = 600;
barChart.height = 400;
barChart.draw();
當然,這里的替代方法是忘記使用JSP模板來加載數組並通過JSON完成操作:
d3.json("/graphWeek", function (error, data) {
var svg = dimple.newSvg("#bar", 800, 500);
var barChart = new dimple.chart(svg, data);
barChart.addCategoryAxis("x", ["Day", "Topic"]);
barChart.addMeasureAxis("y", "Tweets");
barChart.addSeries("Topic", dimple.plot.bar);
barChart.addLegend(100, 10, 510, 20, "right");
barChart.width = 600;
barChart.height = 400;
barChart.draw();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.