如何将数据库值添加到地图以在java中创建融合图表
// datas get from database
"trendlines": [
{
"line": [
{
"startvalue": "175000",
"color": "#8cbb2c",
"thickness": "4",
"alpha": "60",
"displayvalue": "Target - $175K"
}
]
}
]
答案 0 :(得分:3)
为了添加trendlines对象,你必须创建一个数组列表来准备trendline对象,并调用一个方法来构建trendline对象的内部结构,在方法中你必须创建一个hashmap,添加为键值对,在你需要创建一个存储行对象数据的arraylist的hashmap中,在行对象中数据shuld是键值对,所以为了做到这一点你必须创建一个hashmap最后,你需要使用行arraylist对象添加这个hashmap,最后这个arraylist对象将被添加到主hashmap并返回它。
请参阅此Dropbox以获取使用数据库https://www.dropbox.com/s/04dwugo4unw5uin/Fusioncharts_trendline_sample.zip?dl=0
的示例您将从sql文件夹中的项目中获取sql表。
您也可以查看下面的代码段
<%
//prepare trendlines
ArrayList trendlines= new ArrayList();
trendlines.add(buildTrendlines("startvalue","color","displayvalue",gson));
//close the connection.
result.close();
//create 'dataMap' map object to make a complete FusionCharts datasource.
Map<String, String> dataMap = new LinkedHashMap<String, String>();
/*
gson.toJson() the data to retrieve the string containing the
JSON representation of the data in the array.
*/
dataMap.put("chart", gson.toJson(chartobj));
dataMap.put("categories", gson.toJson(categories));
dataMap.put("dataset", gson.toJson(dataset));
dataMap.put("trendlines",gson.toJson(trendlines));
FusionCharts mslineChart= new FusionCharts(
"msline",// chartType
"chart1",// chartId
"600","400",// chartWidth, chartHeight
"chart",// chartContainer
"json",// dataFormat
gson.toJson(dataMap) //dataSource
);
%>
<%!
public Map buildTrendlines(String startvalue, String color, String displayvalue, Gson gson){
Map<String, String> trendlineinner = new HashMap<String, String>();
ArrayList lines = new ArrayList();
Map<String, String> linesdata = new HashMap<String, String>();
linesdata.put("startvalue", "17022");
linesdata.put("color","#6baa01");
linesdata.put("displayvalue","Average");
lines.add(linesdata);
trendlineinner.put("line", gson.toJson(lines));
return trendlineinner;
}
%>
<%= mslineChart.render() %>