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 相关文章推荐
jQuery带箭头提示框tooltips插件集锦
Nov 17 Javascript
javascript 对象数组根据对象object key的值排序
Mar 09 Javascript
Javascript中的call()方法介绍
Mar 15 Javascript
举例详解JavaScript中Promise的使用
Jun 24 Javascript
Javascrip实现文字跳动特效
Nov 27 Javascript
Node.js利用Net模块实现多人命令行聊天室的方法
Dec 23 Javascript
微信小程序开发入门基础教程
Apr 19 Javascript
vue滚动轴插件better-scroll使用详解
Oct 17 Javascript
最后说说Vue2 SSR 的 Cookies 问题
May 25 Javascript
element-ui 远程搜索组件el-select在项目中组件化的实现代码
Dec 04 Javascript
Vue实现图片与文字混输效果
Dec 04 Javascript
Postman如何实现参数化执行及断言处理
Jul 28 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
php生成唯一的订单函数分享
2015/02/02 PHP
PHP后台实现微信小程序登录
2018/08/03 PHP
Javascript 布尔型分析
2008/12/22 Javascript
js类的静态属性和实例属性的理解
2009/10/01 Javascript
基于jquery点击自以外任意处,关闭自身的代码
2012/02/10 Javascript
js判断屏幕分辨率的代码
2013/07/16 Javascript
javascript中的undefined和not defined区别示例介绍
2014/02/26 Javascript
浅谈Angular中ngModel的$render
2016/10/24 Javascript
jQuery Masonry瀑布流插件使用方法详解
2017/01/18 Javascript
网页爬虫之cookie自动获取及过期自动更新的实现方法
2018/03/06 Javascript
详解vue axios二次封装
2018/07/22 Javascript
javascript实现函数柯里化与反柯里化过程解析
2019/10/08 Javascript
微信小程序中网络请求缓存的解决方法
2019/12/29 Javascript
深入理解javascript中的this
2021/02/08 Javascript
一个基于flask的web应用诞生 bootstrap框架美化(3)
2017/04/11 Python
Python实现的朴素贝叶斯算法经典示例【测试可用】
2018/06/13 Python
Python逐行读取文件中内容的简单方法
2019/02/26 Python
python实现可变变量名方法详解
2019/07/01 Python
使用PYTHON解析Wireshark的PCAP文件方法
2019/07/23 Python
python各类经纬度转换的实例代码
2019/08/08 Python
wxpython+pymysql实现用户登陆功能
2019/11/19 Python
Python遍历字典方式就实例详解
2019/12/28 Python
Python selenium页面加载慢超时的解决方案
2020/03/18 Python
3.15国际消费者权益日主题活动活动总结
2014/03/16 职场文书
党员公开承诺书和承诺事项
2014/03/25 职场文书
党校培训自我鉴定范文
2014/04/10 职场文书
驾驶员安全责任书
2014/07/22 职场文书
项目工作说明书
2014/07/29 职场文书
学风建设演讲稿
2014/09/12 职场文书
小学“向国旗敬礼”网上签名寄语活动总结
2014/09/27 职场文书
杨善洲电影观后感
2015/06/04 职场文书
2015年大学生暑期实习报告
2015/07/13 职场文书
2016年度优秀辅导员事迹材料
2016/02/26 职场文书
浅谈MySQL之select优化方案
2021/08/07 MySQL
「月刊Comic Alive」2022年5月号封面公开
2022/03/21 日漫