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版网站风格切换实例代码
Oct 06 Javascript
js escape,unescape解决中文乱码问题的方法
May 26 Javascript
简单的jquery拖拽排序效果实现代码
Sep 20 Javascript
js相册效果代码(点击创建即可)
Apr 16 Javascript
JS去除数组重复值的五种不同方法
Sep 06 Javascript
jquery+php实现搜索框自动提示
Nov 28 Javascript
浅谈Unicode与JavaScript的发展史
Jan 19 Javascript
Bootstrap table使用方法详细介绍
Dec 09 Javascript
webpack 1.x升级过程中的踩坑总结大全
Aug 09 Javascript
vue中动态绑定表单元素的属性方法
Feb 23 Javascript
Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
Nov 20 Javascript
Vue获取页面元素的相对位置的方法示例
Feb 05 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 用session与gd库实现简单验证码生成与验证的类方法
2016/11/15 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
2019/04/11 PHP
超轻量级的基于jquery的三级展开列表
2011/04/26 Javascript
6款新颖的jQuery和CSS3进度条插件推荐
2013/03/05 Javascript
Jquery循环截取字符串的方法(多出的字符串处理成"...")
2016/11/28 Javascript
Vue.js组件tree实现省市多级联动
2016/12/02 Javascript
详解angular中的作用域及继承
2017/05/31 Javascript
Angular 1.x个人使用的经验小结
2017/07/19 Javascript
Angular4表单验证代码详解
2017/09/03 Javascript
深入浅析AngularJs模版与v-bind
2018/07/06 Javascript
微信小程序自定义带价格显示日历效果
2018/12/29 Javascript
如何基于filter实现网站整体变灰功能
2020/04/17 Javascript
vue父子组件间引用之$parent、$children
2020/05/20 Javascript
vue实现前端分页完整代码
2020/06/17 Javascript
jQuery 动态粒子效果示例代码
2020/07/07 jQuery
Vue-cli打包后部署到子目录下的路径问题说明
2020/09/02 Javascript
python监控网站运行异常并发送邮件的方法
2015/03/13 Python
通过Python来使用七牛云存储的方法详解
2015/08/07 Python
python各种语言间时间的转化实现代码
2016/03/23 Python
python 将字符串完成特定的向右移动方法
2019/06/11 Python
Django Rest framework解析器和渲染器详解
2019/07/25 Python
python GUI库图形界面开发之PyQt5结合Qt Designer创建信号与槽的详细方法与实例
2020/03/08 Python
读取nii或nii.gz文件中的信息即输出图像操作
2020/07/01 Python
python爬取网易云音乐热歌榜实例代码
2020/08/07 Python
Python如何解除一个装饰器
2020/08/07 Python
关于python中remove的一些坑小结
2021/01/04 Python
Python+Appium实现自动化清理微信僵尸好友的方法
2021/02/04 Python
CSS3 文字动画效果
2020/11/12 HTML / CSS
有750多个顶级品牌的瑞士时尚在线:ABOUT YOU
2017/01/04 全球购物
新加坡一家在线男士皮具品牌:Faire Leather Co.
2019/12/01 全球购物
客服部工作职责范本
2014/02/14 职场文书
创意婚礼策划方案
2014/05/18 职场文书
优秀毕业生就业推荐信
2014/05/22 职场文书
关爱留守儿童标语
2014/06/18 职场文书
2016年学校“6﹒26国际禁毒日”宣传活动总结
2016/04/05 职场文书
Redis如何实现分布式锁
2021/08/23 Redis