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 相关文章推荐
List Information About the Binary Files Used by an Application
Jun 18 Javascript
js字符编码函数区别分析
Dec 28 Javascript
jquery ajax的success回调函数中实现按钮置灰倒计时
Nov 19 Javascript
JS比较两个时间大小的简单示例代码
Dec 20 Javascript
JavaScript异步回调的Promise模式封装实例
Jun 07 Javascript
原生js实现可爱糖果数字时间特效
Dec 30 Javascript
简单的Vue SSR的示例代码
Jan 12 Javascript
基于Node.js实现压缩和解压缩的方法
Feb 13 Javascript
使用 node.js 模仿 Apache 小部分功能
Jul 07 Javascript
layui 上传图片 返回图片地址的方法
Sep 26 Javascript
JS设置自定义快捷键并实现图片上下左右移动
Oct 17 Javascript
Javascript实现贪吃蛇小游戏(含详细注释)
Oct 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中执行系统外部命令
2006/10/09 PHP
ThinkPHP之M方法实例详解
2014/06/20 PHP
PHP实现过滤掉非汉字字符只保留中文字符
2015/06/04 PHP
Extjs学习笔记之一 初识Extjs之MessageBox
2010/01/07 Javascript
JS无限树状列表实现代码
2011/01/11 Javascript
基于jquery实现发送文章到手机的代码
2014/12/26 Javascript
JavaScript中数组添加值和访问值常见问题
2016/02/06 Javascript
AngularJs ng-route路由详解及实例代码
2016/09/14 Javascript
微信小程序 数据交互与渲染实例详解
2017/01/21 Javascript
超全面的javascript中变量命名规则
2017/02/09 Javascript
简单谈谈React中的路由系统
2017/07/25 Javascript
使用JS组件实现带ToolTip验证框的实例代码
2017/08/23 Javascript
zTree树形菜单交互选项卡效果的实现方法
2017/12/25 Javascript
基于 flexible 的 Vue 组件:Toast -- 显示框效果
2017/12/26 Javascript
js提取中文拼音首字母的封装工具类
2018/03/12 Javascript
JS基于开关思想实现的数组去重功能【案例】
2019/02/18 Javascript
30分钟精通React今年最劲爆的新特性——React Hooks
2019/03/11 Javascript
layui table 多行删除(id获取)的方法
2019/09/12 Javascript
深入Python函数编程的一些特性
2015/04/13 Python
详解Python的collections模块中的deque双端队列结构
2016/07/07 Python
Python Dataframe 指定多列去重、求差集的方法
2018/07/10 Python
Python unittest单元测试框架总结
2018/09/08 Python
Biblibili视频投稿接口分析并以Python实现自动投稿功能
2021/02/05 Python
英国最大的手表网站:The Watch Hut
2017/03/31 全球购物
PHP开发工程师面试问题集锦
2012/11/01 面试题
新书吧创业计划书
2014/01/31 职场文书
幼儿园教师获奖感言
2014/03/11 职场文书
关于青春的演讲稿
2014/05/05 职场文书
校园演讲稿汇总
2014/05/21 职场文书
大学生标准自荐书
2014/06/15 职场文书
2014年小学教师工作总结
2014/11/10 职场文书
发布会邀请函
2015/01/31 职场文书
因工资原因离职的辞职信范文
2015/05/12 职场文书
2015年秋季校长开学典礼致辞
2015/07/29 职场文书
结婚喜宴祝酒词
2015/08/10 职场文书
创业计划书之甜品店
2019/09/18 职场文书