Итак, у меня есть функции для превращения строки в объект и объект в строку, однако мне нужно учитывать исключение, и я не уверен, как это сделать. Позвольте мне показать вам, что у меня естьjavascript, исключение для манипуляции с строкой/объектом
parseObjectToUrl: function (obj){
var myStr = "";
var first_iteration = true;
for (var p in obj) {
if(first_iteration){
myStr += p + "=";
first_iteration = false;
}else{
myStr += "&" + p + "=";
}
tObj = obj[p];
var first_inner = true;
for(t in tObj){
if(first_inner){
myStr += t;
first_inner = false;
}else{
myStr += "," + t;
}
yObj = tObj[t];
for(y in yObj){
myStr += "/" + yObj[y];
}
}
}
return myStr;
},
parseObjectFromUrl : function(url){
var builtObj = {};
//remove first slash
url = url.slice(0, 0) + url.slice(1);
var ch = url.split('&');
var tempParent = {};
for (var p in ch) {
var tempSub = {};
var arr = ch[p].split('=');
var keyParent = arr[0];
var splitInside = arr[1].split(",");
for (var i in splitInside) {
var sub = splitInside[i].split('/');
var subKey = sub[0];
tempSub[subKey] = sub.slice(1);
}
tempParent[keyParent] = tempSub;
}
return tempParent
}
Так что это строка выглядит
/module1=mod1/2/3/4,mod2/2/3/4&module2=mod2/3/4/5
и выглядит объект
myObj =
{
module1 : { mod1 : [2,3,4] , mod2 [2,3,4]} ,
module2 : { mod2 : [3,4,5]}
}
Таким образом, эти функции прекрасно работают мне, однако, я (к сожалению) должен иметь возможность обрабатывать случай, когда пользователь добавляет «/» в такие параметры, как -
myObj =
{
module1 : { mod1 : [2/,3/,4/] , mod2 [2,3,4]} ,
module2 : { mod2 : [3,4,5]}
}
Я уверен, что он собирается бросить ключ в моей функции, потому что я Расщепление из-за «/», так что я не знаю, как это обойти. Удастся ли мне слэш? Как это будет вписываться в функции, если это так? Ищите любые советы по этому вопросу. Благодаря!
Edit:
Я был в состоянии кодировать сбежавшего URL, как:
obj.replace(/([/-])/g, "%2F");
беглому URL, hoever У меня возникают проблемы, делая обратное этому. вот моя попытка.
obj.replace(/(%2F)/g, "/");
_ «функции, чтобы превратить строку в объект и объект в строку» _ - для какой цели? Что вы пытаетесь достичь с этим в конце концов? Вы пытаетесь создать «JSON бедняка» здесь ...? – CBroe
@CBroe настраиваемая система маршрутизации для хранения состояния через URL-адрес, чтобы пользователь мог скопировать/вставить/пометить URL-адрес, который сохранит состояния по нескольким отдельным модулям (угловым) –
Ну, вы можете попробовать и кодировать косу черт, я полагаю ... – CBroe