Konvertieren Sie JavaScript Overlays zurück zu JSON?
-
03-07-2019 - |
Frage
Ich habe Probleme, ein Objekt aus JSON in ein JavaScript-Overlay-Objekt und wieder zurück zu konvertieren. Ich habe in der Klasse die folgenden jetzt:
public class Aff extends JavaScriptObject {
protected Aff() {};
public static native Aff fromJSONString(String jsonString) /*-{
return eval('(' + jsonString + ')');
}-*/;
public final native String toJSON() /*-{
return this.toString();
}-*/;
// followed by get/seters and a bunch of TODO.
}
Ich bin in der Lage mit Objekten zu erstellen und arbeiten, aber die obj.toJSON()
kehrt [object Object]
. Ich kann mich nicht um diese scheinen jede mögliche Weise zu finden, ohne eine manuelle convert zurück in JSON zu tun.
Lösung
this.toString ();
tut eigentlich json Code erzeugen. Er druckt das String-Darstellung des Objekts. Sie werden entweder benutzerdefinierten Code benötigen die json zu schreiben, oder besser, eine Bibliothek verwenden.
Zwei Möglichkeiten Bibliotheken zu verwenden - GWT in json Bibliotheken gebaut verwenden. Nicht so schön, aber nicht brauchen JSNI Code zu schreiben. Oder fügen Sie ein Skript-Ressource zu Ihrem Modul XML für eine Bibliothek wie ein javascript json Bibliothek hier und Nutzung dass in JSNI. Oder eine andere Bibliothek finden, gibt es buchstäblich Hunderte.