首页 > 解决方案 > 我如何为 Java/Javascript 中的事件提供完整日历的 JSON 提要?

问题描述

我在 servlet 中编写了 java 方法来返回一个集合并解析文档以返回 JSON 对象的 JSONArray。这是我的代码 Java Servlet POST METHOD!

EmployeeSchedule_CRUD obj = new EmployeeSchedule_CRUD();
        MongoCollection<Document> collection = obj.getCollection();


        JSONArray jsonArray1 = new JSONArray(); // outer Array
        FindIterable<Document> iterateDocuments = collection.find();
        MongoCursor<Document> cursor = iterateDocuments.iterator();

        long documentCount = collection.countDocuments();
        System.out.println( "Document count " + documentCount);

//      System.out.println(cursor.next().toJson());
        for(Document doc: iterateDocuments)
        {
            JSONObject jsonOBJ = new JSONObject(); // row Array 
            try {
                jsonOBJ.put("title", doc.get("Title"));
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            try {
                jsonOBJ.put("start", doc.get("Start"));
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            try {
                jsonOBJ.put("end", doc.get("End"));
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            try {
                jsonOBJ.put("color", doc.get("Color"));
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            jsonArray1.put(jsonOBJ);



        }

        JSONArray jsonArray2 = jsonArray1;



    response.setContentType("application/json");
    response.setCharacterEncoding("UTF-8");
    response.getWriter().write(jsonArray2.toString());

这是 calendar.js 文件,我在 fullcalendar 文档和堆栈溢出中看到了一些示例。

(function($) {
    'use strict';
    $(function() {
        if ($('#calendar').length) {
            $('#calendar').fullCalendar({
                header: {
                    left: 'prev,next today',
                    center: 'title',
                    right: 'month,basicWeek,basicDay'
                },
                defaultDate: new Date(),
                navLinks: true, // can click day/week names to navigate views
                editable: true,
                eventLimit: true, // allow "more" link when too many events
                eventSources:[

                            {
                            url: '/RetrieveEmployeeSchedule',
                            method: 'POST',
                            failure: function()
                                        {
                                            alert('there was an error fetching events!');
                                        }

                            }
                        ]
            })
        }
    });
})(jQuery);

这是输出,但 FullCalendar 没有“接受”它..如果我把这个确切的格式放在 calendar.js 文件中,日历会呈现事件,所以我的 ajax 调用可能有问题..请帮助

[{"color":"#eb4034","start":"2020-06-20 13:00:00","end":"2020-06-26 20:00:00","title":"Troy Day Shift Working"},{"color":"#0fc1f7","start":"2020-06-20 22:00:00","end":"2020-06-28 09:00:00","title":"Vanessa Midnight Shift Working"},{"color":"#eb4034","start":"2020-07-01 10:00:00","end":"2020-07-09 17:00:00","title":"Ed Day Shift Working"},{},{"color":"#eb4034","start":"2020-07-01 10:00:00","end":"2020-07-09 17:00:00","title":"Ed Day Shift Working"}]

标签: javascriptjavaajaxfullcalendar

解决方案


推荐阅读