在Java Web開(kāi)發(fā)中,我們經(jīng)常會(huì)用到EL表達(dá)式,而在一些前后端不分離的項(xiàng)目中,我們常常需要將一些從后端傳遞過(guò)來(lái)的EL表達(dá)式字符串轉(zhuǎn)換成JSON格式的數(shù)據(jù),以便于在前端進(jìn)行處理和展示。
下面是一段將EL表達(dá)式字符串轉(zhuǎn)換成JSON格式的Java代碼示例:
public static String convertElToJson(String elString) { Mapmap = new HashMap<>(); Pattern pattern = Pattern.compile("\\$\\{([^}]+)}"); Matcher matcher = pattern.matcher(elString); while (matcher.find()) { String el = matcher.group(); String key = el.substring(2, el.length() - 1); map.put(key, null); } return JSON.toJSONString(map); }
這段代碼將傳入的EL表達(dá)式字符串中的每個(gè)${}里面的內(nèi)容都提取出來(lái),作為Map的key,而value則設(shè)置為null,最終將這個(gè)Map轉(zhuǎn)換成JSON格式的字符串返回。
使用該方法的示例如下:
String elString = "Hello, ${name}! Your age is ${age}."; String jsonString = convertElToJson(elString); System.out.println(jsonString);
輸出結(jié)果為:
{"age":null,"name":null}
在前端中,我們可以將這個(gè)JSON字符串解析出來(lái),然后再利用JavaScript的替換功能,將EL表達(dá)式字符串中的每個(gè)${}里面的內(nèi)容替換成對(duì)應(yīng)的值。
總的來(lái)說(shuō),將EL表達(dá)式字符串轉(zhuǎn)換成JSON格式可以方便我們?cè)谇岸诉M(jìn)行處理和展示,同時(shí)也能降低后端和前端的耦合度。