FreeMarker是一個(gè)流行的Java模板引擎,它被廣泛用于Web開發(fā)中。在使用FreeMarker輸出JSON數(shù)據(jù)時(shí),我們需要稍微設(shè)置一下模板和數(shù)據(jù)模型。
// 設(shè)置Content-Type為application/json response.setContentType("application/json"); // 創(chuàng)建Configuration對(duì)象并指定模板文件所在路徑 Configuration cfg = new Configuration(Configuration.VERSION_2_3_30); cfg.setClassForTemplateLoading(getClass(), "/templates"); // 創(chuàng)建模板 Template template = cfg.getTemplate("json.ftl"); // 創(chuàng)建數(shù)據(jù)模型 Mapdata = new HashMap<>(); data.put("name", "John Doe"); data.put("age", 30); data.put("address", "1 Infinite Loop, Cupertino, CA"); // 使用模板渲染數(shù)據(jù)并輸出 try(PrintWriter writer = response.getWriter()) { template.process(data, writer); }
在上述代碼中,我們首先通過(guò)response對(duì)象設(shè)置Content-Type為application/json,以便前端能夠正確解析JSON數(shù)據(jù)。
接下來(lái),我們創(chuàng)建Configuration對(duì)象并指定模板文件所在路徑。在這個(gè)例子中,我們將模板文件放在了“/templates”目錄下,它是在類路徑下的。
然后,我們使用Configuration對(duì)象獲取模板并創(chuàng)建數(shù)據(jù)模型,數(shù)據(jù)模型是一個(gè)Map對(duì)象,包含了要輸出的JSON數(shù)據(jù)。
最后,我們使用模板對(duì)象的process方法將數(shù)據(jù)模型渲染到輸出流中,完成JSON數(shù)據(jù)的輸出。
以上就是在FreeMarker中輸出JSON數(shù)據(jù)的基本步驟。通過(guò)這種方式,我們可以方便地將Java數(shù)據(jù)轉(zhuǎn)換為JSON格式,供前端頁(yè)面使用。