Plocka funktion ur JSON eller textsträng?

Permalänk

Plocka funktion ur JSON eller textsträng?

Sitter och fifflar lite med cykliska objekt i JavaScript och försöker få till en funktion för att spara ett variabelt antal objekt med variabelt innehåll. Jag har hittat en väg runt att objekten kallar på varandra och därmed brutit cykeln, men vissa av värdena är sparade i form av funktioner (vilket parseJSON inte riktigt gillar).
Jag kan plocka ut de properties som innehåller dessa funktioner och för att få en valid parse har jag satt dessa till 0 i encoding, men jag skulle vilja ha en funktion för att "skriva ut" funktioner när encodern stöter på den och försöka räkna ut den för att få de värden som finns där.

Exempel på ett par av de properties som har funktioner:

"getLayer" : "function () { if (this.className === "Layer") { return this; } else { return this.getParent().getLayer(); } }", "getStage" : "function () { return this.getParent().getStage(); }", "getName" : "function () { return this.name; }"

Här är encodern jag har gjort:

var list = []; if (Shape instanceof Array) { for (var i=0;i < Shape.length;i++) { var stringTxt = "" + Shape[i]; list.push(stringTxt); } return '[' + list.join(',') + ']'; } else { for (var prop in Shape) { var sProp = "" + Shape[prop]; if(sProp.contains("object")){ //Plockar bort alla properties som innehåller objekt, för att bryta cykeln } else if(sProp.contains("function")){ //Här sätts alla funktioner i strängen till 0, men jag vill "ha ut" funktionen istället. var stringTxt = '"' + prop + '" : 0'; list.push(stringTxt); } else if(is_int(Shape[prop])) { //Om propertien är en siffra, skriv utan citat var stringTxt = '"' + prop + '" : ' + Shape[prop] + ''; list.push(stringTxt); } else { //allt annat omsluts med citat var stringTxt = '"' + prop + '" : "' + Shape[prop] + '"'; list.push(stringTxt); } } return '{' + list.join(',') + '}'; }

Några tipps på hur man kan gå till väga?

Typo i titel
Visa signatur

Stationär: Processor: Intel i5 3.2GHz, RAM: 4Gb, Grafikkort: ATI Radeon HD 5850, OS: Windows 7 Proffessional x64
Laptop: ASUS K53E, Processor: Intel i5 2450M, RAM: 4Gb, Grafik: Integrerad Intel GMA HD, OS: Win7 Home Premium x64 och Xubuntu 10