javascript,字符串/对象操作的例外
所以,我必须使用函数来将字符串转换为对象,将对象转换为字符串,但是我需要考虑一个except,我不确定如何转换。让我给你看看我有什么javascript,字符串/对象操作的例外,javascript,Javascript,所以,我必须使用函数来将字符串转换为对象,将对象转换为字符串,但是我需要考虑一个except,我不确定如何转换。让我给你看看我有什么 parseObjectToUrl: function (obj){ var myStr = ""; var first_iteration = true; for (var p in obj) { if(first_iteration){
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]}
这个物体看起来像
/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]}
}
我肯定它会对我的函数造成影响,因为我正在按“/”进行拆分,所以我不知道如何绕过这个问题。我能逃脱刀砍吗?如果是这样的话,这将如何适应功能?正在寻找有关此问题的任何建议。谢谢
编辑:
我能够对转义url进行如下编码:
obj.replace(/([/-])/g, "%2F");
对于一个转义的url,无论我在做相反的事情时遇到什么困难。这是我的尝试
obj.replace(/(%2F)/g, "/");
在我看来,最好使用url数组,但请记住url的字符可能会受到限制: 说了这么一句话,我们可以这样做:
module1[]=1&module1[]=2&module2[]=4&module2[]=3
这等于以下伪代码:
$_GET["module1"] = array(1,2);
$_GET["module2"] = array(4,3);
并将encodeURIComponent和decodUriComponent用于您的值
“将字符串转换为对象并将对象转换为字符串的函数”-用于什么目的?你最终想用这个达到什么目的?你想在这里创建一个“穷人的JSON”吗…?@CBroe一个自定义路由系统,通过url保存一个状态,这样用户可以复制/粘贴/标记url,从而在多个单独的模块(角度)之间保存状态。你可以试着用url编码斜杠,我想…@CBroe这就是最终的效果,谢谢你的建议!我仍在尝试“解码”它。urlencode和URLEDECODE如何: