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 相关文章推荐
图片自动缩小 点击放大
Jul 07 Javascript
javascript form 验证函数 弹出对话框形式
Jun 23 Javascript
Jquery Ajax学习实例7 Ajax所有过程事件分析示例
Mar 23 Javascript
ajax异步刷新实现更新数据库
Dec 03 Javascript
封装html的select标签的js操作实例
Jul 02 Javascript
JS 操作Array数组的方法及属性实例解析
Jan 08 Javascript
js使用eval解析json实例与注意事项分享
Jan 18 Javascript
javascript实现的简单计时器
Jul 19 Javascript
js实现登录框鼠标拖拽效果
Mar 09 Javascript
在vue里面设置全局变量或数据的方法
Mar 09 Javascript
clipboard.js在移动端复制失败的解决方法
Jun 13 Javascript
Vue.js中该如何自己维护路由跳转记录
May 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
PHP Stream_*系列函数
2010/08/01 PHP
php生成EAN_13标准条形码实例
2013/11/13 PHP
php实现分页显示
2015/11/03 PHP
完美解决phpdoc导出文档中@package的warning及Error的错误
2016/05/17 PHP
PHP简单读取PDF页数的实现方法
2016/07/21 PHP
LazyLoad 延迟加载(按需加载)
2010/05/31 Javascript
jquery配合css简单实现返回顶部效果
2013/09/30 Javascript
js 剪切板的用法(clipboardData.setData)与js match函数介绍
2013/11/19 Javascript
JS判断对象是否存在的10种方法总结
2013/12/23 Javascript
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
2014/01/07 Javascript
利用jquery.qrcode在页面上生成二维码且支持中文
2014/02/12 Javascript
js控制当再次点击按钮时的间隔时间
2014/06/03 Javascript
浅析基于WEB前端页面的页面内容搜索的实现思路
2014/06/10 Javascript
AngularJS中directive指令使用之事件绑定与指令交互用法示例
2016/11/22 Javascript
使用node.js中的Buffer类处理二进制数据的方法
2016/11/26 Javascript
JS中使用 after 伪类清除浮动实例
2017/03/01 Javascript
react 组件传值的三种方法
2019/06/03 Javascript
jQuery HTML css()方法与css类实例详解
2020/05/20 jQuery
vue+vant实现购物车全选和反选功能
2020/11/17 Vue.js
python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
2014/07/09 Python
python调用机器喇叭发出蜂鸣声(Beep)的方法
2015/03/23 Python
python使用socket进行简单网络连接的方法
2015/04/29 Python
Python3.6安装及引入Requests库的实现方法
2018/01/24 Python
对python以16进制打印字节数组的方法详解
2019/01/24 Python
python math模块的基本使用教程
2021/01/16 Python
英国著名的药妆网站:Escentual
2016/07/29 全球购物
家得宝墨西哥官网:The Home Depot墨西哥
2019/11/18 全球购物
关于人生的感言
2014/01/17 职场文书
优秀交警事迹材料
2014/01/26 职场文书
产假请假条
2014/04/10 职场文书
奉献演讲稿范文
2014/05/21 职场文书
优秀家长自荐材料
2014/08/26 职场文书
刑事和解协议书范本
2014/11/19 职场文书
2015年团支部年度工作总结
2015/05/27 职场文书
Jupyter notebook 更改文件打开的默认路径操作
2021/05/21 Python
TensorFlow中tf.batch_matmul()的用法
2021/06/02 Python