Probleme beim Auslesen eines JSON-Objektes

jhartlep

Grünschnabel
[gelöst] Probleme beim Auslesen eines JSON-Objektes

Moin,
für eine mehrsprachige Website brauche ich innerhalb der Seite in einer JS-Variable die im JS verwendeten Strings in der jeweiligen Sprache.
Dazu habe ich mir folgende Lösung überlegt:
Nach dem Laden der Seite fordere ich über ein Ajax-Request (mit jQuery $.post) ein JSON-Objekt vom Server an. Serverseitig baue ich mir hier aus den ResourceFiles das entsprechende JSON-Objekt und schicke das wieder an den Client.
Soweit klappt auch alles. Hier die Ausgabe aus dem Firebug:
Code:
{"javascript.test3":"TEST3","javascript.test2":"TEST2","javascript.test1":"TEST1","locale":"de_DE"}

Jetzt habe ich jedoch das Problem, daß ich die Werte von z.B. javascript.test3 nicht ausgelesen bekomme. Erlaubt JSON keine Punkte im Namen?

Hier nochmal der Vollständigkeit der komplette Code:
JS: (in der getLanguage.jsp rufe ich die Methode getLanguage aus der entsprechenden Bean auf)
Code:
var url = "getLanguage.jsp";
var data = {};
var callback = function(data) {
    alert(data.locale);
}
var type = "json";
$.post(url,data,callback,type);

JAVA:
Code:
public JsonObject getLanguage() {
    JsonObject jsonObject = new JsonObject();
    Locale locale = Locale.GERMANY;
    String resource = "language_de";
    ResourceBundle bundle = ResourceBundle.getBundle(resource, locale);
    Enumeration<String> keys = bundle.getKeys();
    while(keys.hasMoreElements()) {
        String key = keys.nextElement();
        if(key.contains("javascript") {
            jsonObject.addProperty(key, bundle.getString(key));
        }
    }
    jsonObject.addProperty("locale", locale.toString());
    return jsonObject;
}

und noch ein Ausszug aus dem ResourceBundle
Code:
### javascript
javascript.test1=TEST1
javascript.test2=TEST2
javascript.test3=TEST3
 
Zuletzt bearbeitet:
Autsch******...
Ok, ich beantworte mir das Problem mal selbst :)
Code:
alert(data["javascript.test3"]);
Anstelle der Punktnotation einfach die "Array-Notation" und alles wird gut :)
 
Zurück