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 对象介绍
Jan 20 Javascript
ajax的hide隐藏问题解决方法
Dec 11 Javascript
jquery的冒泡事件的阻止与允许(三种实现方法)
Feb 01 Javascript
JavaScript 函数惰性载入的实现及其优点介绍
Aug 12 Javascript
js实现无需数据库的县级以上联动行政区域下拉控件
Aug 14 Javascript
表单元素与非表单元素刷新区别详细解析
Nov 06 Javascript
JQUERY dialog的用法详细解析
Dec 19 Javascript
根据当前时间在jsp页面上显示上午或下午
Aug 18 Javascript
基于jQuery实现淡入淡出效果轮播图
Jul 31 Javascript
原生js获取浏览器窗口及元素宽高常用方法集合
Jan 18 Javascript
js使用ajax传值给后台,后台返回字符串处理方法
Aug 08 Javascript
Vue实现远程获取路由与页面刷新导致404错误的解决
Jan 31 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过滤所有恶意字符(批量过滤post,get敏感数据)
2014/03/18 PHP
跟我学Laravel之请求与输入
2014/10/15 PHP
PHP随机生成信用卡卡号的方法
2015/03/23 PHP
Laravel5.5新特性之友好报错以及展示详解
2017/08/13 PHP
JavaScript实现两个Table固定表头根据页面大小自行调整
2014/01/03 Javascript
jQuery 2.0.3 源码分析之core(一)整体架构
2014/05/27 Javascript
js遍历子节点子元素附属性及方法
2014/08/19 Javascript
Node.js实现数据推送
2016/04/14 Javascript
JS 滚动事件window.onscroll与position:fixed写兼容IE6的回到顶部组件
2016/10/10 Javascript
JSP防止网页刷新重复提交数据的几种方法
2016/11/19 Javascript
jQuery动态添加.active 实现导航效果代码思路详解
2017/08/29 jQuery
使用Node.js实现ORM的一种思路详解(图文)
2017/10/24 Javascript
webpack external模块的具体使用
2018/03/10 Javascript
解决vuejs项目里css引用背景图片不能显示的问题
2018/09/13 Javascript
在小程序Canvas中使用measureText的方法示例
2018/10/19 Javascript
微信公众号中的JSSDK接入及invalid signature等常见错误问题分析(全面解析)
2020/04/11 Javascript
vue-cli4项目开启eslint保存时自动格式问题
2020/07/13 Javascript
Python的MongoDB模块PyMongo操作方法集锦
2016/01/05 Python
python中abs&map&reduce简介
2018/02/20 Python
基于Python3.6+splinter实现自动抢火车票
2018/09/25 Python
详解PyTorch手写数字识别(MNIST数据集)
2019/08/16 Python
Python判断三段线能否构成三角形的代码
2020/04/12 Python
python语言中有算法吗
2020/06/16 Python
一款纯css3实现简单的checkbox复选框和radio单选框
2014/11/05 HTML / CSS
美国受信赖的教育产品供应商:Nest Learning
2018/06/14 全球购物
查找廉价航班和发现新目的地:Kiwi.com
2019/02/25 全球购物
英国户外装备商店:Ultimate Outdoors
2019/05/07 全球购物
全球领先的中国制造商品在线批发平台:DHgate
2020/01/28 全球购物
美国基督教约会网站:ChristianCafe.com
2020/02/04 全球购物
高三语文教学反思
2014/01/15 职场文书
消防安全宣传标语
2014/06/07 职场文书
讲文明懂礼貌演讲稿
2014/09/11 职场文书
群众路线教师自我剖析材料
2014/09/29 职场文书
党支部2014年度工作总结
2014/12/04 职场文书
医务人员医德考评自我评价
2015/03/03 职场文书
vue实现列表垂直无缝滚动
2022/04/08 Vue.js