Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在java中使用googleapi生成图形_Javascript_Java_Graph_Google Api - Fatal编程技术网

Javascript 在java中使用googleapi生成图形

Javascript 在java中使用googleapi生成图形,javascript,java,graph,google-api,Javascript,Java,Graph,Google Api,我试图在我的项目中创建“销售v/s退货”图表。我正在使用GoogleAPI和Java以及数据库中的数据。我的代码如下: JS代码: google.charts.load('current', {packages: ['corechart', 'line']}); google.charts.setOnLoadCallback(drawTrendlines); function drawTrendlines() { var data = new google.visualization.

我试图在我的项目中创建“销售v/s退货”图表。我正在使用GoogleAPI和Java以及数据库中的数据。我的代码如下:

JS代码:

google.charts.load('current', {packages: ['corechart', 'line']});
google.charts.setOnLoadCallback(drawTrendlines);

function drawTrendlines() {
    var data = new google.visualization.DataTable();
    data.addColumn('string', 'X');
    data.addColumn('number', 'Sale');
    data.addColumn('number', 'Return');
    var bb="BPS40L 1 Y";
    var jsonData = $.ajax({
        url: "chart?icd="+bb+"&opt="+1,
        type: "post",
        dataType: "json",
        async: false
    }).responseText;

    var data = google.visualization.arrayToDataTable(jsonData);
    var options = {
        hAxis: {
            title: "day"
        },
        vAxis: {
            title: "Sales"
        },
        colors: ['#AB0D06', '#007329'],
        trendlines: {
            0: {type: 'exponential', color: '#333', opacity: 1},
            1: {type: 'linear', color: '#111', opacity: .3}
        }
    };

    var chart = new google.visualization.LineChart(document.getElementById('chart_div'));

    chart.draw(data, options, {width: 600, height: 540});
}
});
Java代码:

ArrayList mn1 = new ArrayList();
while (rs.next()) {
    JSONObject aListcounter = new JSONObject();
    aListcounter.put(i,i);
    aListcounter.put("sale",rs.getInt("SLQ"));
    aListcounter.put("return",rs.getInt("RTQ"));
    mn1.add(aListcounter);
    i+=3;
} 
rs.close();
ps.close();
response.setContentType("application/json");
//new Gson().toJson(list2, response.getWriter());
JSONObject jObj = new JSONObject();
jObj.put("data",mn1);

out.println(mn1);
我从服务器获得如下输出:

[{"0":0,"sale":"3","return":"13"},{"1":1,"sale":"23","return":"23"}]

没有生成任何图形。获取错误消息:“
不是数组”

您需要更改服务器发送的数据,使其具有以下格式:

[
  ["X", "Sale", "Return"],
  [0, 3, 13],
  [1, 23, 23]
]
google.charts.load('current'{
软件包:['corechart']
});
google.charts.setOnLoadCallback(drawTrendlines);
函数drawTrendlines(){
var data=new google.visualization.DataTable();
data.addColumn('string','X');
data.addColumn('编号','销售');
data.addColumn('number','Return');
var bb=“BPS40L 1 Y”;
var jsonData=
[
[“X”、“销售”、“退货”],
[0, 3, 13],
[1, 23, 23]
];
var data=google.visualization.arrayToDataTable(jsonData);
变量选项={
哈克斯:{
标题:“一天”
},
言辞:{
标题:“销售”
},
颜色:['#AB0D06','#007329'],
趋势线:{
0: {
类型:'指数',
颜色:“#333”,
不透明度:1
},
1: {
类型:'线性',
颜色:'#111',
不透明度:.3
}
}
};
var图=
新的google.visualization.LineChart(document.getElementById('chart_div');
图表绘制(数据、选项、{
宽度:600,
身高:540
});
}


感谢您的回复。我需要知道如何使用java从服务器端传递和接收。我不明白。您需要做的是修复Java代码,例如使用
JSONArray
而不是
JSONObject
,以便它生成我在答案顶部发布的输出。“如何从服务器传递和接收”与此问题有什么关系?