k666 a écrit :
j'aimerais appliquer une regexp pour désérialiser le tout simplememnt;
|
Pourquoi donc ? En js2, uneval() se charge de faire ce que tu veux. Le but est donc de filer la chaîne de sortie à eval() pour qu'il ressorte un objet.
Pour coder uneval(), tu boucles sur tes propriétés (for ... in), tu créés une chaîne qui représente un objet littéral (comme tu as mis), et hop !
eg
var str = '';
function uneval(obj)
{
str += '{';
for (i in obj)
{
if (typeof(obj[i]) == 'number' || typeof(obj[i]) == 'string')
str += i + ':' + obj[i];
else
str += i + uneval(obj[i]);
}
str += '}';
}
(non testé)