jquery里url转json和json转url的方法亲测 收藏


  • :
  • 04-14 21:46
  • :
  • 117次
  • :
  • 0条
  • 0赞

简介在jquery里把url里的值转成json的方法函数,及把json转成url格式的字符串的方法。

本文和大家分享一下在jquery里,json和url相互转换的方法:

一:JSON转URL:

jquery里有一个$.param()的函数,可以用来把JSON转成url格式的字符串:

var obj={aa:"fda",bb:["bb1","bb2"]};
console.log($.param(obj));
//aa=fda&bb%5B%5D=bb1&bb%5B%5D=bb2
//值是经过url编码的,解码看下:
console.log(decodeURIComponent($.param(obj)));
//aa=fda&bb[]=bb1&bb[]=bb2

//另外,也可以再添加个参数,让$.param用传统的方法来转换:
console.log($.param(obj),true);
//aa=fda&bb=bb1&bb=bb2

另外,如果要转换的JSON对象里有子对象,实测的结果如下:

var obj={aa:"fda",bb:["bb1","bb2"],cc:{cc1:"cc1",cc2:"cc2"}};
console.log($.param(obj));
//aa=fda&bb%5B%5D=bb1&bb%5B%5D=bb2&cc%5Bcc1%5D=cc1&cc%5Bcc2%5D=cc2
console.log(decodeURIComponent($.param(obj)));
//aa=fda&bb[]=bb1&bb[]=bb2&cc[cc1]=cc1&cc[cc2]=cc2

console.log(decodeURIComponent($.param(obj,true)));
//aa=fda&bb=bb1&bb=bb2&cc=[object+Object]

从上面的实例里看出,当json里有对象时,用传统的方法转换后,对象里的内容是转换不了的。

二:URL转JSON:

jquer里是没有和“URL转JSON”相关的函数的,需要我们自己来写:

function UrlToJson(url) {
    url = url == null ? window.location.href : url;
    var search = url.substring(url.lastIndexOf("?") + 1);
    var obj = {};
    var reg = /([^?&=]+)=([^?&=]*)/g;
    search.replace(reg,function(rs,$1,$2) {
        var name = decodeURIComponent($1);
        var val = decodeURIComponent($2);
        val = String(val);
        if(obj.hasOwnProperty(name)){
            if(typeof(obj[name])=="string"){
                obj[name]=[obj[name]];
            };
            obj[name].push(val);
        }else{
            obj[name]=val;
        };
        return rs;
    });
    return obj;
};

来看一个站长亲测的实例:

var url="aabb?a=b&c=c1&c=c2";
var json=UrlToJson(url);
console.log(json);

结果如下:

jquery里url转json和json转url的方法_1

站长写文不容易,转载请备注,本文首发 爱jquery www.aijquery.cn

好了,本文就写到这里了,希望本文能帮助到所有看到这篇文章的朋友们!



您正在找的文章可能是: