Ho una mappa Java. Voglio convertirlo in una mappa JavaScript.Convertire la mappa Java in Javascript Map
La funzione del Java per convertire come JS mappa segue:
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;
}
Nella pagina JSP javascript il codice è:
var langs = ${messagesJS};
in JavaScript, ho ottenuto:
langs = {en=true, de=false, fr=false};
invece di
langs = {"en":true, "de":false, "fr":false}
Si prega di suggerire come realizzare questo?
C'è qualche motivo per cui ** è necessario ** avere le chiavi avvolte tra virgolette doppie? Hai già un oggetto JavaScript valido. Se è un requisito assoluto (e, ancora una volta, non riesco a pensare a un singolo motivo per cui lo sarebbe), dai un'occhiata a return [JSON] (http://json.org). –