2016-06-21 21 views
1

Ich habe ein Problem mit der Konvertierung eines JSON in Zeichenfolge. Auf iOS funktioniert alles perfekt, aber auf Android habe ich diesen Fehler:Appcelerator - Konvertieren der kreisförmigen Struktur in JSON

[ERROR] : TiExceptionHandler: (main) [2,20592] - Message: Uncaught TypeError: Converting circular structure to JSON 

Dies ist mein Code:

var args = $.args 

var data = args.data; 
var oferta = data.oferta; 
var params = data.params; 
var parent = args.parent; 

//INSERT 
var producto = Alloy.createModel('Producto', { 
    oferta_id: parseInt(oferta.id), 
    data: JSON.stringify(args) //ERROR 
}); 

Die args an den Controller übergeben werden wie folgt aus:

var args = { 
    data: 
    { 
     oferta: {id: 5}, 
     params:{id_opcion_precio: 3445} 
    }, 
    parent: {} 
} 

Was ist falsch?? Warum auf iOS funktioniert gut ???

+0

Warum brauchen Sie JSON.stringify? Überprüfen Sie diese Antwort: http://stackoverflow.com/questions/4816099/chrome-sendrequest-error-typeerror-converting-circular-structure-to-json –

+0

Weil ich dieses JSON in einem Textfeld auf einer db-Tabelle behalten möchte – amurcia

+0

Ich habe die Antwort oben gesehen und ist nicht mein Fall, denke ich. Ich kann keine kreisförmige Struktur wie in der Antwort sehen – amurcia

Antwort

0

Nicht sicher, warum Sie stringifizieren möchten args. Versuchen Sie, beim Erstellen des Modells JSON.stringify(args.data) zu verwenden.

Ich denke, Sie hätten das gleiche Problem nur stringifying args in einer Protokollanweisung wie: console.log(JSON.stringify(args))?

Ich habe ähnliche Probleme beim Versuch, das gesamte Ereignis (z. B. von ti.map) auf der Konsole zu schreiben. Etwas macht es kaputt - ich nehme an, dass den Daten, die Sie nicht sehen, einige Attribute hinzugefügt wurden.

+0

Schließlich löste ich mein Problem dabei: 'JSON.stringify ({Daten: Daten, Eltern: Elternteil}) ' Das funktioniert Ich weiß nicht warum, aber funktioniert – amurcia

+0

Ok, so ähnliche Erfahrung, was ich gestoßen bin mit Ereignissen. Muss etwas hinzugefügt werden, das wir nicht sehen können ;-) –

0

Schließlich löste ich mein Problem dies zu tun:

JSON.stringify({data: data, parent: parent}); 

Das funktioniert Ich weiß nicht, warum, aber funktioniert