1.对象转url字符串
var obj = {
a: 1,
b: 2
};
//a=1&b=2
function jsonToString(obj){
let arr = [];
for(let key in obj){
arr.push(key + "=" + obj[key]);
}
console.log(arr);
return arr.join('&');
}
console.log(jsonToString(obj));
2.url字符串转化为对象
// url字符串转对象
var url = 'https://baidu.com/vms/api?act=doLogin&userId=user&password=TES';
// 最后生成:
// args:{
// act : 'doLogin',
// userId : 'user',
// password : 'TES'
// }
function getQueryStringArgs(url) {
let queryString = url.split('?')[1]; //取得查询字符串并去掉开头的问号
let args = {};
let queryStringToArray = queryString.length ? queryString.split("&") : [];
console.log(queryStringToArray);
let item = null;
let key = null;
let value = null;
let len = queryStringToArray.length;
for (let i = 0; i < len; i++) {
// 去掉数组每一项的等号并转换为数组
item = queryStringToArray[i].split("=");
key = decodeURIComponent(item[0]);//对已编码的字符串进行解码,如果没有编码,则返回字符串的副本
value = decodeURIComponent(item[1]);
console.log(item);
if (key.length) {//填入对象
args[key] = value;
}
}
return args;
}
var url = 'https://baidu.com/vms/api?act=doLogin&userId=ADMIN&password=TES';
var args = getQueryStringArgs(url);
console.log(args);
//三:变量名简单版的
function getQueryString(url) {
let queryString = url.split('?')[1]; //取得查询字符串并去掉开头的问号
let args = {};
let stringToArray = queryString.length;
let item = null;
let key = null;
let value = null;
let len = stringToArray.length;
for (let i = 0; i < len; i++) {
// 去掉数组每一项的等号并转换为数组
item = stringToArray[i].split("=");
key = item[0];//对已编码的字符串进行解码,如果没有编码,则返回字符串的副本
value = item[1];
console.log(item);
if (key.length) {//填入对象
args[key] = value;
}
}
return args;
}
var url = 'https://baidu.com/vms/api?act=doLogin&userId=ADMIN&password=TES';
var args = getQueryStringArgs(url);
console.log(args);