JS Object对象转换成URL查询参数

这样一个对象:

var obj = {
    name:'tom',
    phone:'1338728128'
};

有现成的函数(JS原生或者jQuery的)可以把他转换成下面的字符串吗:

name=tom&phone=1338728128

我自己写函数没问题的,只是想问问js或者jQuery里面有现成的东西可用吗?

阅读 15.3k
4 个回答

这应该是叫序列化

<head>

</head>

<body>
<script>
let obj = {

    a:'aaa',
    b:'bbbb',
    c:{
            c1:'c1c1c1',
            c2:'c2c2c2',
            c3:{
            c3a:'c3ac3a',
            c3b:'c3bc3b'
            }
    },
    d:'ddd',

}

function encodeUrl(obj){

    let url ='';

(function (obj){

    let kvArr = Object.entries(obj);
    kvArr.forEach(v=>{
            if(Object.prototype.toString.call(v[1]) =='[object Object]')

{

                    arguments.callee(v[1]);
            }else{
                    url += v.join('=')+'&'
            }
    })
    

})(obj)
return url.substring(0,url.length-1);
}

let res =encodeUrl(obj);
console.log(res);
</script>
</body>

推荐问题