JavaScript 之 对象转换为Url参数形式

摘要:
在使用Get请求数据的时候,常常需要手动拼接。相对来说,这样不利于维护。有没有办法,能将对象直接转换为数组的形式?可以使用此方法1/**讲对象转换为url参数形式2*@property{Object}param将要转换为URL参数的字符串对象3*@property{String}keyURL参数字符串的前缀4*@property{Boolean}encode是否进行URL编码,默认为true5*@return{String}URL参数字符串6*/7urlEncode:function{8ifreturn'';9varparamStr='';10vart=typeof;11if{12paramStr+='&'+key+'='+((encode==null||encode)?

在使用Get请求数据的时候,常常需要手动拼接。相对来说,这样不利于维护。有没有办法,能将对象直接转换为数组的形式?

可以使用此方法

1 /**讲对象转换为url参数形式
2 * @property {Object} param 将要转换为URL参数的字符串对象
3 * @property {String} key URL 参数字符串的前缀
4 * @property {Boolean} encode 是否进行URL编码,默认为true
5 * @return {String} URL参数字符串
6      */
7 urlEncode: function(param, key, encode) {
8     if (param == null) return '';
9     var paramStr = '';
10     var t = typeof(param);
11     if (t == 'string' || t == 'number' || t == 'boolean') {
12         paramStr += '&' + key + '=' + ((encode == null || encode) ?encodeURIComponent(param) : param);
13     } else{
14         for (var i inparam) {
15             var k = key == null ? i: key + (param instanceof Array ? '[' + i + ']': '.' +i);
16             paramStr += urlEncode(param[i], k, encode);
17 }
18 }
19     returnparamStr;
20 }

但对象为obj={name:'tom',class:{className:'class1'},classMates:[{name:'lily'},{name :'李雷'}]}; 时,调用用urlEncode(obj) 返回结果为:

&name=tom&class.className=class1&classMates[0].name=lily&classMates[1].name=%E6%9D%8E%E9%9B%B7

调用urlEncode(obj ,"stu") ,返回结果为:

&stu.name=tom&stu.class.className=class1&stu.classMates[0].name=lily&stu.classMates[1].name=%E6%9D%8E%E9%9B%B7

参考网址

https://www.cnblogs.com/wangbiao10086/p/7383090.html

免责声明:文章转载自《JavaScript 之 对象转换为Url参数形式》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇如何设置tomcat定时自动重启DockerCompose下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Python接口自动化-接口基础(二)

一、HTTP请求方式 1.常见请求方式 方法 描述 GET 请求指定的页面信息,并返回实体主体 HEAD 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头 POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改 PUT 从...

阿里云直播服务 sdk demo php

[php] <?php   /**   * Created by PhpStorm.   * User: Administrator   * Date: 2016/12/8 0008   * Time: 11:05   */      class Aliyun{       private $accessKeyId = "";          ...

python如何获取公众号下面粉丝的openid

如何获取公众号下面粉丝的openid呢,首先要获取一个access_token,这个token可不是令牌(Token),如何获取这个access_token呢?有两种方法,方法如下: #-*- coding: cp936 -*- #python 27 #xiaodeng #原文在 https://www.cnblogs.com/dengyg200891/p...

Soap流程

首先本文不对SOAP有过多的解释,你只需知道它是--简单对象访问协议,一种轻量的、简单的、基于 XML 的协议。举个例子,WebService其实就基于SOAP的。 再简单的说一下,SOAP就是打包-->发送-->收包-->处理-->返回包等一系列流程,在ASP.NET中可以使用MSXML2中的XMLHTTPClass类来创建SOA...

maven和gradle的全局阿里云镜像代理

Maven:~/.m2/settings.xml <?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-...

JS代码收藏大全

从其他地方找来的,希望对有需要的人带来方便! 1. oncontextmenu="window.event.returnvalue=false" 将彻底屏蔽鼠标右键<table border oncontextmenu=return(false)><td>no</table> 可用于Table 2. <body o...