我遇到了一个讨厌的JSON对象,我需要转换为具有可变深度的JS对象.
不久:(我正在使用jQuery)
var nastyJSON_string = "{"generics_utenteID":"1","generics_elencoID":"1","mainbar_ade_stepID_0":"1","mainbar_ade_stepID_1":"3","mainbar_ade_stepTitle_0":"blablabla", "mainbar_ade_stepTitle_1" : "quiquoqua"}";
var nastyJSON = JSON.parse(nastyJSON_string);
// nastyJSON if parsed correctly now is: {generics_utenteID:"1",generics_elencoID:"1" ...and so on}.
Run Code Online (Sandbox Code Playgroud)
现在,我需要将nastyJSON转换为具有可变深度的JS对象.我的意思是:
var reusableJSObject = {
generics : {
utenteID : 1,
elencoID : 1
},
mainbar : {
ade : {
stepID : {
0 : 1,
1 : 3
},
stepTitle : {
0 : "blablabla",
1 : "quiquoqua"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我最好的方法是手动创建它,循环nastyJSON,切换套管键并创建在众所周知的深度末尾添加值的对象.
像这样:
jQuery.each(nastyJSON, function(key,value){
var keysp = key.split('_');
switch(keysp[0])
{
//# generics …Run Code Online (Sandbox Code Playgroud)