将json数据拼接到url中
json
适用于现代 C++ 的 JSON。
项目地址:https://gitcode.com/gh_mirrors/js/json
免费下载资源
·
这个问题是昨天百度一面的问题,想法倒是有,但是代码写出来就有些费劲,其实当场觉得这个代码应该很好写(毕竟思想是有的),但是今天尝试了一下去写代码,还是有一点点的问题,下面分享一下解决这个问题的两个代码片段
1、硬写法(哈哈哈)
var url = '//www.jb51.net:80/seo/?';
var data = { //一个json数据
'a':1,
'b':2,
'c':3
};
var arr = JSON.stringify(data); //将json数据转换为字符串格式
var len = arr.length; //获取字符串长度
var data1 = arr.substring(1,len-1); //截取字符串中不包括‘{}’部分
var data2 = data1.split(','); //以','分割字符串
var jsonArr = []; //创建一个新数组
for(var i=0;i<data2.length;i++){
str2 = data2[i].replace(/\"/g, ""); //去掉data2数据中每一项的""
var str3 = str2.replace(/:/,'='); //将str2数据中的每一项中':'替换为'='
jsonArr.push(str3); //将str3数据存入数组里面
}
var result = url+jsonArr.join('&'); //将两个数据拼接起来
console.log(result);
2、函数法(这个法起名就比较正经)
function addURLParam(url,name,value){ //3个参数,要添加参数的url,参数的名称,参数的值
url += (url.indexOf("?")==-1?"?":"&"); //判断url中是否有'?'
url += encodeURIComponent(name)+"="+encodeURIComponent(value); //拼接
return url;
}
var url = "example.php";
url = addURLParam(url,"name1","1"); //传参
url = addURLParam(url,"name2","2"); //传参
console.log(url);
3、函数法--只添加一次(来吧,继续正经的起名)
function addURLParam(url,name,value){ //3个参数,要添加参数的url,参数的名称,参数的值
url += (url.indexOf("?")==-1?"?":"&"); //判断url中是否有'?'
url += encodeURIComponent(name)+"="+encodeURIComponent(value); //拼接
return url;
}
var url = "example.php";
var json = {
'name':111,
'value':222,
'key':333
};
for(var key in json){
url = addURLParam(url,key,json[key]); //传参
}
console.log(url);
写一个百度面试小结吧,在这之前我一直觉得我只要有思想就够了,代码什么的就会自然而然的写出来,然而不是这样的,必须有思维方式然后再经过数不清的实战次数才可以吧,也很可惜没能听到更多的面试题,在很简单的问题上却因为代码“栽了跟头”,继续努力吧
GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e
2 个月前
8c391e04
5 个月前
更多推荐
已为社区贡献1条内容
所有评论(0)