2016-11-02 4 views
1

Ich habe versucht, mein qooxdoo-Objekt zu JSON zu serialisieren, aber ich bekomme immer eine 'zu viel Rekursion'-Fehlermeldung (in Firebug-Konsole), wenn ich Folgendes versuche :Fehler 'zu viel Rekursion' beim Versuch, Qooxdoo-Objekt zu serialisieren

qx.util.Serializer.toJson (this.getGameData())

auch wirft .toNativeObject-Funktion diesen Fehler. Das API-Handbuch ist dafür sehr dünn: http://www.qooxdoo.org/current/apiviewer/#qx.util.Serializer

Hat jemand ein Arbeitsbeispiel für mich oder einen Vorschlag was könnte der Grund dafür sein?

Danke und Grüße

Antwort

2

Einer Ihrer Objekte müssen eine Eigenschaft oder ähnliches aufweisen, die auf ein Objekt bezieht, die bereits serialisiert wurde - es ist nichts falsch mit qx.util.Serializer verwenden, aber wenn Sie es ein Objekt geben, das hat rekursive Referenzen erhalten Sie einen Rekursionsfehler.

Sie können das Qooxdoo Playground (http://www.qooxdoo.org/devel/playground/) verwenden, um ein Beispiel Ihres Problems zu erstellen, damit andere Ihnen helfen können, Problem zu diagnostizieren; Wenn Sie es reproduzieren können, verwenden Sie die Schaltfläche "URL verkürzen", um einen winzigen Link zu erstellen.

Hier ist ein funktionierendes Beispiel für qx.util.Serializer, können Sie kopieren & es in den Spielplatz Paste (SO wird nicht lassen Sie mich tinyurls verwenden :()

qx.Class.define("abc.MyClass", { 
    extend: qx.core.Object, 

    properties: { 
    alpha: { 
     init: null, 
     nullable: true 
    } 
    } 
}); 

var my = new abc.MyClass(); 
my.set({ alpha: 1 }); 
this.debug(qx.util.Serializer.toJson(my)); 


/* ****************************** 
* Show the log by clicking the "Log" button in the toolbar to see the output 
*/ 
+0

Vielen Dank für Ihr Beispiel, John, und sorry für Meine verspätete Antwort: Ich habe von SO keine Warnung erhalten, dass jemand geantwortet hat und dies nur zufällig gesehen hat Ich habe es jetzt funktioniert. Das Problem war in der Tat einige Rekursion Fehler. In Qooxdoo gibt es kein Problem, wenn ein Kind-Objekt hat einen Verweis auf das übergeordnete Objekt, aber der Serializer scheint es nicht zu mögen Ein anderes Problem, das ich herausgefunden habe, ist, wenn Objekte mit Eigenschaften verwendet werden einer anderen Art von komplexem Objekt. Dort musste ich eine Eigenschaft mit dem aktuellen Klassennamen des Objekts übergeben, der im json gespeichert wird. Das brauche ich im Delegierten zum Marshal. – Ricky

Verwandte Themen