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 相关文章推荐
js判断输入是否为正整数、浮点数等数字的函数代码
Nov 17 Javascript
关于递归运算的顺序测试代码
Nov 30 Javascript
JavaScript中的this关键字介绍与使用实例
Jun 21 Javascript
从jquery的过滤器.filter()方法想到的
Sep 29 Javascript
jquery fancybox ie6不显示关闭按钮的解决办法
Dec 25 Javascript
JavaScript判断表单中多选框checkbox选中个数的方法
Aug 17 Javascript
20行JS代码实现网页刮刮乐效果
Jun 23 Javascript
解决在vue+webpack开发中出现两个或多个菜单公用一个组件问题
Nov 28 Javascript
Angular6中使用Swiper的方法示例
Jul 09 Javascript
vue.js编译时给生成的文件增加版本号
Sep 17 Javascript
vue-router之nuxt动态路由设置的两种方法小结
Sep 26 Javascript
vue项目打包之开发环境和部署环境的实现
Apr 23 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相当简单的分页类
2008/10/02 PHP
用mysql_fetch_array()获取当前行数据的方法详解
2013/06/05 PHP
PHP聚合式迭代器接口IteratorAggregate用法分析
2017/12/28 PHP
让checkbox不选中即将选中的checkbox不选中
2014/07/11 Javascript
原生js实现addClass,removeClass,hasClass方法
2016/04/27 Javascript
微信小程序 label 组件详解及简单实例
2017/01/10 Javascript
解决AngualrJS页面刷新导致异常显示问题
2017/04/20 Javascript
vue select选择框数据变化监听方法
2018/08/24 Javascript
vue生命周期与钩子函数简单示例
2019/03/13 Javascript
Node.js + express基本用法教程
2019/03/14 Javascript
微信小程序动态添加view组件的实例代码
2019/05/23 Javascript
javascript创建元素和删除元素实例小结
2019/06/19 Javascript
js事件触发操作实例分析
2019/06/21 Javascript
[02:32]“虐狗”镜头慎点 2016国际邀请赛中国区预选赛现场玩家采访
2016/06/28 DOTA
[40:06]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第一场
2018/04/04 DOTA
[45:16]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第一场 12.12
2020/12/16 DOTA
Python使用百度API上传文件到百度网盘代码分享
2014/11/08 Python
Python函数参数类型*、**的区别
2015/04/11 Python
Python多线程爬虫简单示例
2016/03/04 Python
Python利用ElementTree模块处理XML的方法详解
2017/08/31 Python
Python模块文件结构代码详解
2018/02/03 Python
python数据封装json格式数据
2018/03/04 Python
Python实现的质因式分解算法示例
2018/05/03 Python
python2.7使用plotly绘制本地散点图和折线图
2019/04/02 Python
Django框架自定义session处理操作示例
2019/05/27 Python
40个你可能不知道的Python技巧附代码
2020/01/29 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
2020/02/04 Python
Python requests模块session代码实例
2020/04/14 Python
Hotels.com中国区:好订网
2016/08/18 全球购物
美国第二大连锁书店:Books-A-Million
2017/12/28 全球购物
奥地利网上现代灯具和灯饰店:Lampenwelt.at
2018/01/29 全球购物
意大利时尚奢侈品店:D’Aniello Boutique
2021/01/19 全球购物
AOP的定义以及作用
2013/09/08 面试题
工作失职检讨书范文
2014/01/16 职场文书
质量承诺书格式
2014/05/20 职场文书
初二物理教学反思
2016/02/19 职场文书