2009-03-04 8 views
0

Je rencontre des problèmes lors de la conversion d'un objet de JSON en objet de superposition JavaScript, et inversement. Je le suivais dans la classe maintenant:Convertir les superposition de JavaScript en JSON?

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. 
} 

Je suis en mesure de créer et de travailler avec des objets, mais les rendements obj.toJSON()[object Object]. Je n'arrive pas à trouver un moyen de contourner cela sans faire une conversion manuelle en JSON.

Répondre

0

this.toString();

ne produit pas de code json. Il imprime la représentation de chaîne de l'objet. Vous aurez besoin de code personnalisé pour écrire le fichier json, ou mieux, utilisez une bibliothèque.

Deux façons d'utiliser les bibliothèques - utilisez les bibliothèques json intégrées de gwt. Pas aussi bien, mais pas besoin d'écrire du code jsni. Vous pouvez également ajouter une ressource de script à votre module XML pour une bibliothèque, par exemple javascript json library here, et l'utiliser dans jsni. Ou, trouvez une autre bibliothèque, il y en a littéralement des centaines là-bas.

+0

C'est vraiment ce que je voulais éviter. J'ai des objets très complexes provenant d'un système hérité et je ne veux pas écrire la conversion JSON à la main. C'était le plan si personne ne répondait, mais c'est ennuyeux. –

Questions connexes