我有一个非常独特的问题,我正在尝试解决:
我有以下序列化查询字符串:
a=a2&b.c=c2&b.d.e=e2&b.d.f=f2
反序列化为如下object对象:
{
a: "a2",
b.c: "c2",
b.d.e: "e2",
b.d.f: "f2"
}
使用以下解析器(在平面对象上效果很好!)
function parse(string){
string =
'{"' + //root
string
.replace(/&/g, '","') //replace '&' with ','
.replace(/=/g,'":"')+ //replace '=' with ':'\
'"}'; //close root
return JSON.parse(string,function(key, value){ //handle URI issues
var ret;
if(key===""){ //null key means that we have something wrong with the encoding, probably escaped shit
ret = value;
}
else{
ret = decodeURIComponent(value); //decode escaped stuff
}
return ret;
});
}
这需要解析成一个多维对象,表示.
键中的符号,如下所示:
{
a:"a2",
b:{
c: "c2",
d:{
e:"e2",
f:"f2"
}
}
}
这里的任何帮助都会很棒。在过去的几个小时里,我一直在尝试将其递归到形状中,但是我的大脑已经崩溃,解决方案没有乐趣可言。
如果有另一种方法可以将第 N 维 javascript 对象解析为 URI,然后再解析为 JavaSCript 对象(两个函数),我会全力以赴。