【发布时间】:2012-11-30 05:02:54
【问题描述】:
我有一个 Java 地图。我想把它转换成 JavaScript 地图。
转换成JS map的java函数如下:
private Object getJSLocalizedValueMap() {
Map<String, String> langSel = new HashMap<String, String>();
langSel.add("en", true);
langSel.add("de", false);
langSel.add("fr", false);
//Now convert this map into Javascript Map
NativeObject nobj = new NativeObject();
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("javascript");
for (Map.Entry<String, String> entry : langSel.entrySet()) {
nobj.defineProperty(entry.getKey(), entry.getValue(), NativeObject.READONLY);
}
engine.put("langSel", nobj);
return langSel;
}
在 JSP 页面的 javascript 中,代码是:
var langs = ${messagesJS};
在 Javascript 中,我得到:
langs = {en=true, de=false, fr=false};
而不是
langs = {"en":true, "de":false, "fr":false}
请建议我如何实现这一目标?
【问题讨论】:
-
您是否有任何理由需要将键用双引号括起来?您已经有一个有效的 JavaScript 对象。如果这是绝对要求(同样,我想不出一个原因),请查看返回 JSON。
标签: java javascript jsp