我已经像这样完成了 Map 对象到字符串对象的转换
public String getJsonString(Map<String, Map<String,List<CalculateContentCount>>> countMap) {
Gson gson = new Gson();
String jsonString = gson.toJson(countMap);
return jsonString;
}
在 ftl 中,我将返回的 String 对象设置为 request 并将其粘贴到 JSP 文件中
<#assign countMap = json>
<form action="/alfresco/jsp/kpub/reports/exportContentCountList.jsp" method="get">
<input type="hidden" name="countMap" id="countMap" value="${countMap}">
<input type="submit" value="ExportFiletoCSV"/>
</form>
在 exportContentCountList 中,我尝试将字符串对象解析回 Map 对象,
String jsonString = request.getParameter("countMap");
System.out.println("jsonString : "+jsonString);
Gson gson = new Gson();
Map<String,Map<String,List<CalculateContentCount>>> countMap = null;
Type type = null;
if(jsonString != null && !"".equals(jsonString)) {
type = new TypeToken<Map<String,Map<String,List<CalculateKpubContentCount>>>>(){}.getType();
countMap = gson.fromJson(jsonString,type);
}
执行时,出现以下异常。这是例外
com.google.gson.JsonParseException: Failed parsing JSON source:
caused by:
com.google.gson.ParseException: Encountered "<EOF>" at line 1, column 1.
Was expecting one of:
<IDENTIFIER_SANS_EXPONENT> ...
<IDENTIFIER_STARTS_WITH_EXPONENT> ...
<SINGLE_QUOTE_LITERAL> ...
<DOUBLE_QUOTE_LITERAL> ...
"}" ...
可能是什么问题?