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 相关文章推荐
JAVASCRIPT style 中visibility和display之间的区别
Jan 22 Javascript
javascript对象之内置对象Math使用方法
Apr 16 Javascript
js 一个关于图片onload加载的事
Nov 10 Javascript
多选列表框动态添加,移动,删除,全选等操作的简单实例
Jan 13 Javascript
如何判断微信内置浏览器(通过User Agent实现)
Sep 01 Javascript
javascript实现一个数值加法函数
Jun 26 Javascript
JS IOS/iPhone的Safari浏览器不兼容Javascript中的Date()问题如何解决
Nov 11 Javascript
微信小程序 页面跳转如何实现传值
Apr 05 Javascript
javascript数组去重常用方法实例分析
Apr 11 Javascript
集成vue到jquery/bootstrap项目的方法
Feb 10 jQuery
Vue 通过自定义指令回顾v-内置指令(小结)
Sep 03 Javascript
vue如何使用外部特殊字体的操作
Jul 30 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自定义函数实现二维数组排序功能
2016/07/20 PHP
php实现给二维数组中所有一维数组添加值的方法
2017/02/04 PHP
Laravel学习教程之从入口到输出过程详解
2017/08/27 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
php设计模式之装饰模式应用案例详解
2019/06/17 PHP
PHP safe_mode开启对于PHP系统函数有什么影响
2020/11/10 PHP
动手学习无线电
2021/03/10 无线电
JSON 数据格式介绍
2012/01/13 Javascript
JS等比例缩小图片尺寸的实例
2013/02/27 Javascript
网页前端优化之滚动延时加载图片示例
2013/07/13 Javascript
javascript实现的平方米、亩、公顷单位换算小程序
2014/08/11 Javascript
node.js中的fs.lchown方法使用说明
2014/12/16 Javascript
解决Webpack 热部署检测不到文件变化的问题
2018/02/22 Javascript
vue-i18n结合Element-ui的配置方法
2019/05/20 Javascript
微信小程序音乐播放器开发
2019/11/20 Javascript
[40:57]TI4 循环赛第二日 iG vs EG
2014/07/11 DOTA
python根据经纬度计算距离示例
2014/02/16 Python
详解Python中列表和元祖的使用方法
2015/04/25 Python
基于Python实现对PDF文件的OCR识别
2016/08/05 Python
pandas 取出表中一列数据所有的值并转换为array类型的方法
2018/04/11 Python
python下解压缩zip文件并删除文件的实例
2018/04/24 Python
python人民币小写转大写辅助工具
2018/06/20 Python
使用Tkinter制作信息提示框
2020/02/18 Python
python中使用you-get库批量在线下载bilibili视频的教程
2020/03/10 Python
解决python 执行shell命令无法获取返回值的问题
2020/12/05 Python
分布式数据库需要考虑哪些问题
2013/12/08 面试题
.NET方向面试题
2014/11/20 面试题
2014春晚主持词
2014/03/25 职场文书
中学生国旗下讲话稿
2014/04/26 职场文书
歌颂祖国演讲稿
2014/05/04 职场文书
语文课外活动总结
2014/08/27 职场文书
元宵节寄语大全
2015/02/27 职场文书
导游词之无锡梅园
2019/11/28 职场文书
Ajax是什么?Ajax高级用法之Axios技术
2021/04/21 Javascript
分析Netty直接内存原理及应用
2021/06/14 Java/Android
vue 自定义的组件绑定点击事件
2022/04/21 Vue.js