Ich habe eine Java Map. Ich möchte es in JavaScript Map konvertieren.Java Map in Javascript Map konvertieren
Die Java-Funktion als JS Karte konvertieren folgt:
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;
}
In der JSP-Seite Script ist der Code:
var langs = ${messagesJS};
In Javascript, ich habe:
langs = {en=true, de=false, fr=false};
anstelle von
langs = {"en":true, "de":false, "fr":false}
Bitte schlagen Sie mir vor, wie Sie das erreichen?
Gibt es einen Grund, warum ** Sie die Schlüssel in doppelte Anführungszeichen setzen müssen? Sie haben bereits ein gültiges JavaScript-Objekt. Wenn es eine absolute Anforderung ist (und ich kann mir auch keinen einzigen Grund vorstellen, warum es so wäre), dann schau dir die [JSON] (http://json.org) an. –