Jquery中增加参数与Json转换代码


Posted in Javascript onNovember 20, 2009

在jquery中,使用$("#myform").serialize()可以将表单的内容构造成一个querystring,例如width=1680&height=1050这样的表达式,可以转化为json
表达式{"width":"1680","height":"1050"}。
有时候,我们需要进一步转化为json表达式,参考Ext中的Ext.urlDecode函数,我们可以实现一个相应的jquery中使用的函数:

$.par2Json=function(string, overwrite){ 
var obj = {}, 
pairs = string.split('&'), 
d = decodeURIComponent, 
name, 
value; 
$.each(pairs, function(i,pair) { 
pair = pair.split('='); 
name = d(pair[0]); 
value = d(pair[1]); 
obj[name] = overwrite || !obj[name] ? value : 
[].concat(obj[name]).concat(value); 
}); 
return obj; 
};

如果有必要,可以使用$.toJson(s)转化为Json Object.
如果反过来,将json表达式转化为querystr参数形式,可以使用$.param()方法,或者我们自己实现一个,例如下面代码:
$.json2Par=function(o, pre){ 
var undef, buf = [], key, e = encodeURIComponent; 
for(key in o){ 
undef = o[key]== 'undefined'; 
$.each(undef ? key : o[key], function(val, i){ 
buf.push("&", e(key), "=", (val != key || !undef) ? e(val) : ""); 
}); 
} 
if(!pre){ 
buf.shift(); 
pre = ""; 
} 
return pre + buf.join(''); 
};
Javascript 相关文章推荐
Jquery 类网页微信二维码图块滚动效果具体实现
Oct 14 Javascript
js拆分字符串并将分割的数据放到数组中的方法
May 06 Javascript
Jq通过td获取同行其它列td的方法
Oct 05 Javascript
AngularJS定时器的使用与移除操作方法【interval与timeout】
Dec 14 Javascript
vue.js+Element实现表格里的增删改查
Jan 18 Javascript
vue高德地图之玩转周边
Jun 16 Javascript
VUE中使用Vue-resource完成交互
Jul 21 Javascript
webpack 4.0.0-beta.0版本新特性介绍
Feb 10 Javascript
axios全局请求参数设置,请求及返回拦截器的方法
Mar 05 Javascript
关于Angularjs中跨域设置白名单问题
Apr 17 Javascript
微信小程序实现图片上传放大预览删除代码
Jun 28 Javascript
uniapp与webview之间的相互传值的实现
Jun 29 Javascript
ExtJS的FieldSet的column列布局
Nov 20 #Javascript
页面版文本框智能提示JS代码
Nov 20 #Javascript
js url传值中文乱码之解决之道
Nov 20 #Javascript
js trim函数 去空格函数与正则集锦
Nov 20 #Javascript
div移动 输入框不能输入的问题
Nov 19 #Javascript
ExtJS Window 最小化的一种方法
Nov 18 #Javascript
JS获取dom 对象 ajax操作 读写cookie函数
Nov 18 #Javascript
You might like
php dirname(__FILE__) 获取当前文件的绝对路径
2011/06/28 PHP
PHP运行出现Notice : Use of undefined constant 的完美解决方案分享
2012/03/05 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
javascript 打开页面window.location和window.open的区别
2010/03/17 Javascript
js中页面的重新加载(当前页面/上级页面)及frame或iframe元素引用介绍
2013/01/24 Javascript
jQuery创建平滑的页面滚动(顶部或底部)
2013/02/26 Javascript
JS window对象的top、parent、opener含义介绍
2013/12/03 Javascript
jQuery中常用的遍历函数用法实例总结
2015/09/01 Javascript
基于jquery步骤进度条源码分享
2015/11/12 Javascript
基于JavaScript实现通用tab选项卡(通用性强)
2016/01/07 Javascript
简述JavaScript提交表单的方式 (Using JavaScript Submit Form)
2016/03/18 Javascript
基于jquery实现智能表单验证操作
2016/05/09 Javascript
JS控制文本域只读或可写属性的方法
2016/06/24 Javascript
微信小程序 Page()函数详解
2016/10/17 Javascript
bootstrap datetimepicker日期插件使用方法
2017/01/13 Javascript
详解AngularJS中$filter过滤器使用(自定义过滤器)
2017/02/04 Javascript
JavaScript用二分法查找数据的实例代码
2017/06/17 Javascript
js实现简单数字变动效果
2017/11/06 Javascript
vue实现微信分享功能
2018/11/28 Javascript
vuex存储token示例
2019/11/11 Javascript
JS算法教程之字符串去重与字符串反转
2020/12/15 Javascript
Python中的XML库4Suite Server的介绍
2015/04/14 Python
Python科学计算之Pandas详解
2017/01/15 Python
python实现简单遗传算法
2018/03/19 Python
详解python中eval函数的作用
2019/10/22 Python
巴黎卡诗美国官方网站:始于1964年的头发头皮护理专家
2017/07/10 全球购物
留学自荐信的技巧
2013/10/17 职场文书
成功经营餐厅的创业计划书范文
2013/12/26 职场文书
置业顾问岗位职责
2014/03/02 职场文书
《大江保卫战》教学反思
2014/04/11 职场文书
教师民族团结演讲稿
2014/08/27 职场文书
卖车协议书范本4篇
2014/10/01 职场文书
高三语文教学反思
2016/02/16 职场文书
如何搭建 MySQL 高可用高性能集群
2021/06/21 MySQL
索尼ICF-36收音机评测
2022/04/30 无线电
Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)
2022/07/15 Java/Android