用javaee绘制google图表

用javaee绘制google图表,java,jakarta-ee,charts,google-visualization,Java,Jakarta Ee,Charts,Google Visualization,我想在google图表中画一个线图,数据以JavaEE获取并作为json发送。 谷歌期待这类数据 [ ['日期','总计'], ['2018-01-01',11], ['2018-01-02',2], ['2018-01-03',2], ['2018-01-04',2], ['2018-01-05',7] ]看起来您需要使用createArrayBuilder而不是createObjectBuilder 类似于 public static JsonObject weeksEventsGraph

我想在google图表中画一个线图,数据以JavaEE获取并作为json发送。 谷歌期待这类数据

[
['日期','总计'],
['2018-01-01',11],
['2018-01-02',2],
['2018-01-03',2],
['2018-01-04',2],
['2018-01-05',7]

]
看起来您需要使用
createArrayBuilder
而不是
createObjectBuilder

类似于

public static JsonObject weeksEventsGraph(){
    ThisWeek week = GetTime.weekDates();
    Calendar cal = Calendar.getInstance();
    JsonArrayBuilder jsonArrayBuilder = Json.createArrayBuilder();
    JsonObject data = null;

    sql ="SELECT DATE(`eventApprovedOn`) AS eventDate, sum(`eventId`) as total FROM " +
        "events WHERE DATE(eventApprovedOn) >= ? AND DATE(eventApprovedOn) <= ? " +
        "AND `eventStatus` = 1 GROUP BY `eventApprovedOn`";

    try {
        preparedStatement = DatabaseUtilities.createConnection(sql);
        preparedStatement.setString(1,week.getStart());
        preparedStatement.setString(2,week.getEnd());
        resultSet = preparedStatement.executeQuery();

        for(int i = Calendar.SUNDAY; i <= Calendar.SATURDAY; i++) {
            cal.set(Calendar.DAY_OF_WEEK, i);
            String date = df.format(cal.getTime());//Returns Date

            if(resultSet.isFirst()){
                 System.out.print(date +"   "+ resultSet.getString("eventDate"));
                while(resultSet.next()){
                    if(resultSet.getString("eventDate").equals(date)){
                        JsonObject dayObj = Json.createArrayBuilder();
                        dayObj.add(date);
                        dayObj.add(resultSet.getInt("total"));
                        jsonArrayBuilder.add(dayObj);
                        break;
                    }else{
                        //if the end of resultset is reached and the date has no value, set it to zero
                        if(resultSet.isLast()){
                            JsonObject dayObj = Json.createArrayBuilder();
                            dayObj.add(date);
                            dayObj.add(0);
                            jsonArrayBuilder.add(dayObj);
                        }
                    }
                } //end of while loop
            }else{
                JsonObject dayObj = Json.createArrayBuilder();
                dayObj.add(date);
                dayObj.add(0);
                jsonArrayBuilder.add(dayObj);
            }
        }//end of date loop

        System.out.print(jsonArrayBuilder);

    } catch (SQLException ex) {
        Logger.getLogger(Events.class.getName()).log(Level.SEVERE, null, ex);
    }finally{
        DatabaseUtilities.closeConnection(resultSet, preparedStatement);
    }

    return data;
}
公共静态JsonObject weeksEventsGraph(){
ThisWeek=GetTime.weekDates();
Calendar cal=Calendar.getInstance();
JsonArrayBuilder JsonArrayBuilder=Json.createArrayBuilder();
JsonObject数据=null;
sql=“选择日期(`eventApprovedOn`)作为eventDate,选择总和(`eventId`)作为总计”+

“日期(eventApprovedOn)>=?和日期(eventApprovedOn)的事件看起来需要使用
createArrayBuilder
而不是
createObjectBuilder

类似于

public static JsonObject weeksEventsGraph(){
    ThisWeek week = GetTime.weekDates();
    Calendar cal = Calendar.getInstance();
    JsonArrayBuilder jsonArrayBuilder = Json.createArrayBuilder();
    JsonObject data = null;

    sql ="SELECT DATE(`eventApprovedOn`) AS eventDate, sum(`eventId`) as total FROM " +
        "events WHERE DATE(eventApprovedOn) >= ? AND DATE(eventApprovedOn) <= ? " +
        "AND `eventStatus` = 1 GROUP BY `eventApprovedOn`";

    try {
        preparedStatement = DatabaseUtilities.createConnection(sql);
        preparedStatement.setString(1,week.getStart());
        preparedStatement.setString(2,week.getEnd());
        resultSet = preparedStatement.executeQuery();

        for(int i = Calendar.SUNDAY; i <= Calendar.SATURDAY; i++) {
            cal.set(Calendar.DAY_OF_WEEK, i);
            String date = df.format(cal.getTime());//Returns Date

            if(resultSet.isFirst()){
                 System.out.print(date +"   "+ resultSet.getString("eventDate"));
                while(resultSet.next()){
                    if(resultSet.getString("eventDate").equals(date)){
                        JsonObject dayObj = Json.createArrayBuilder();
                        dayObj.add(date);
                        dayObj.add(resultSet.getInt("total"));
                        jsonArrayBuilder.add(dayObj);
                        break;
                    }else{
                        //if the end of resultset is reached and the date has no value, set it to zero
                        if(resultSet.isLast()){
                            JsonObject dayObj = Json.createArrayBuilder();
                            dayObj.add(date);
                            dayObj.add(0);
                            jsonArrayBuilder.add(dayObj);
                        }
                    }
                } //end of while loop
            }else{
                JsonObject dayObj = Json.createArrayBuilder();
                dayObj.add(date);
                dayObj.add(0);
                jsonArrayBuilder.add(dayObj);
            }
        }//end of date loop

        System.out.print(jsonArrayBuilder);

    } catch (SQLException ex) {
        Logger.getLogger(Events.class.getName()).log(Level.SEVERE, null, ex);
    }finally{
        DatabaseUtilities.closeConnection(resultSet, preparedStatement);
    }

    return data;
}
公共静态JsonObject weeksEventsGraph(){
ThisWeek=GetTime.weekDates();
Calendar cal=Calendar.getInstance();
JsonArrayBuilder JsonArrayBuilder=Json.createArrayBuilder();
JsonObject数据=null;
sql=“选择日期(`eventApprovedOn`)作为eventDate,选择总和(`eventId`)作为总计”+
“事件,其中日期(eventApprovedOn)>=”和日期(eventApprovedOn)