2

我想从 java 映射创建一个 javascript 映射,以根据在另一个下拉列表中选择的值设置下拉值。下面是代码(不工作):

var categoryAndReportsMap = new Object();
<% 
Map<String,Set<String>> categoryAndReportsJ = (Map<String,Set<String>>)      request.getAttribute("categoryAndReports");
for(Map.Entry<String,Set<String>> e : categoryAndReportsJ.entrySet()){ %>
categoryAndReportsMap[ <% e.getKey(); %> ] = <% e.getValue(); %>;
<% } %>

请建议我怎样才能做到这一点。

4

1 回答 1

3

您需要在键和值周围加上引号:

categoryAndReportsMap["<%= e.getKey() %>"] = "<%= e.getValue() %>";

但这假设这些字符串本身不包含引号。最好的解决方案是使用像优秀的gson这样的 JSON 序列化器,这就像

var categoryAndReportsMap = <%= gson.toJson(categoryAndReportsJ) %>;
于 2013-05-06T14:25:40.170 回答