Jquery中增加参数与Json转换代码

在jquery中,使用$("#myform").serialize()可以将表单的内容构造成一个querystring,例如width=1680&height=1050这样的表达式,可以转化为json

表达式{"width":"1680","height":"1050"}。

有时候,我们需要进一步转化为json表达式,参考Ext中的Ext.urlDecode函数,我们可以实现一个相应的jquery中使用的函数:

ContractedBlock.gif ExpandedBlockStart.gif Code
$.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()方法,或者我们自己实现一个,例如下面代码:

ContractedBlock.gif ExpandedBlockStart.gif Code
$.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('');
    };

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值