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 相关文章推荐
自动设置iframe大小的jQuery代码
Sep 11 Javascript
javascript使用switch case实现动态改变超级链接文字及地址
Dec 16 Javascript
javascript 动态创建表格
Jan 08 Javascript
详解Javascript模板引擎mustache.js
Jan 20 Javascript
js判断所有表单项不为空则提交表单的实现方法
Sep 09 Javascript
vue2.5.2使用http请求获取静态json数据的实例代码
Feb 27 Javascript
详解.vue文件解析的实现
Jun 11 Javascript
angular6.0开发教程之如何安装angular6.0框架
Jun 29 Javascript
react在安卓中输入框被手机键盘遮挡问题的解决方法
Sep 03 Javascript
vue.js指令v-for使用以及下标索引的获取
Jan 31 Javascript
Vue通过配置WebSocket并实现群聊功能
Dec 31 Javascript
js实现抽奖的两种方法
Mar 19 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
基于thinkPHP框架实现留言板的方法
2016/10/17 PHP
php排序算法实例分析
2016/10/17 PHP
PHP新特性之字节码缓存和内置服务器
2017/08/11 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
2019/09/02 PHP
使用jQuery和PHP实现类似360功能开关效果
2014/02/12 Javascript
JavaScript判断一个字符串是否包含指定子字符串的方法
2015/03/18 Javascript
JS实现带关闭功能的阿里妈妈网站顶部滑出banner工具条代码
2015/09/17 Javascript
AngularJs定制样式插入到ueditor中的问题小结
2016/08/01 Javascript
浅谈AngularJs指令之scope属性详解
2016/10/24 Javascript
详解Jquery的事件操作和文档操作
2016/12/19 Javascript
浅谈Angular路由守卫
2017/08/26 Javascript
swiper移动端轮播插件(触碰图片之后停止轮播)
2017/12/28 Javascript
zepto.js 实时监听输入框的方法
2018/12/04 Javascript
Vue程序化的事件监听器(实例方案详解)
2020/01/07 Javascript
Vue管理系统前端之组件拆分封装详解
2020/08/23 Javascript
[01:00:44]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第三局
2016/03/04 DOTA
全面了解python字符串和字典
2016/07/07 Python
详解python基础之while循环及if判断
2017/08/24 Python
详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
2019/05/07 Python
如何使用python操作vmware
2019/07/27 Python
Python内置数据类型list各方法的性能测试过程解析
2020/01/07 Python
Python try except异常捕获机制原理解析
2020/04/18 Python
CSS3 Pie工具推荐--让IE6-8支持一些优秀的CSS3特性
2014/09/02 HTML / CSS
HTML5等待加载动画效果
2017/07/27 HTML / CSS
体育教师自荐信范文
2013/12/16 职场文书
高级销售求职信
2014/02/21 职场文书
《新型玻璃》教学反思
2014/04/13 职场文书
文明家庭先进事迹材料
2014/05/14 职场文书
售后客服工作职责
2014/06/16 职场文书
党员查摆四风问题思想汇报
2014/10/25 职场文书
幼师小班个人总结
2015/02/12 职场文书
失恋33天观后感
2015/06/11 职场文书
公司规章制度范本
2015/08/03 职场文书
应届毕业生的自我评价
2019/06/21 职场文书
Vue接口封装的完整步骤记录
2021/05/14 Vue.js