@nemis: ano. Próbuję zrobić funkcję do serializacji dowolnego obiektu javascriptowego do stringa i z powrotem.
W Pythonie jest takie fajne coś - moduł pickle - który na to pozwala. W javascripcie jest niby JSON, ale nie obsługuje serializacji obiektów z kodem, ani obiektów z referencjami zapętlonymi.
Znalazłem bibliotekę w necie, która niby to umie, ale nie działa do końca (nie deserializuje dobrze funkcji w zagnieżdżonych obiektach).
Komentarze (928)
najlepsze
Dziękuje za skontaktowanie się z naszym Pogotowiem Komputerowym.
W celu naprawienia powyżej opisanego błędu proszę wyłączyć i włączyć komputer. Komputer powinien się naprawić.
W czymś jeszcze możemy pomóc?
http://www.youtube.com/watch?v=nn2FB1P_Mn8
if(!this.cleaner){
try{this.cleaner=new RegExp('^("(\.|[^"\n\r])?"|[,:{}[\]0-9.\-+Eaeflnr-u \n\r\t])+?$')}
catch(a){this.cleaner=/^(true|false|null|[.]|{.}|"."|\d+|\d+.\d+)$/}
};
//if(!this.cleaner.test(x)){return {}};
eval("this.myObj="+x);
if(!this.restoreCirculars || !alert){return this.myObj};
if(this.includeFunctions){
var x=this.myObj;
for(var i in x){if(typeof x[i]=="string" && !x[i].indexOf("JSONincludedFunc:")){
x[i]=x[i].substring(17);
eval("x[i]="+x[i])
}}
};
this.restoreCode=[];
this.make(this.myObj,true);
var r=this.restoreCode.join(";")+";";
eval('r=r.replace(/\W([0-9]{1,})(\W)/g,"[$1]$2").replace(/\.\;/g,";")');
eval(r);
return this.myObj;
},
W Pythonie jest takie fajne coś - moduł pickle - który na to pozwala. W javascripcie jest niby JSON, ale nie obsługuje serializacji obiektów z kodem, ani obiektów z referencjami zapętlonymi.
Znalazłem bibliotekę w necie, która niby to umie, ale nie działa do końca (nie deserializuje dobrze funkcji w zagnieżdżonych obiektach).
EDIT: Nie, żebym się spodziewał,
Od ponad 4 lat mam maka, a i tak to pamiętam ...