惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
大猫的无限游戏
大猫的无限游戏
博客园 - 聂微东
Jina AI
Jina AI
The Cloudflare Blog
V
Visual Studio Blog
博客园_首页
量子位
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 【当耐特】
爱范儿
爱范儿
博客园 - 三生石上(FineUI控件)
小众软件
小众软件
博客园 - 司徒正美
阮一峰的网络日志
阮一峰的网络日志
Last Week in AI
Last Week in AI
V
V2EX
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 叶小钗
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享
T
Tailwind CSS Blog
博客园 - Franky

博客园 - 在路上...

Iphone的HEIC图片文件格式转换及相关开发工具 账号复活了 2015年,即将结束 CentOS 6 minimal 安装之后添加gnome Windows8离线安装.net framework 3.5 新年快到了,此记 flex中ComboBox对应的几种数据绑定 - 在路上... - 博客园 如何获取到informix for linux? 建国大业 《红》mp3下载 T42内存升级 随便一帖 Informix 9.40UC9 on Redhat Linux AS 4安装手记 Taking the web Offline and On the Desktop Flex上传文件功能 Flex实现QQ网页提取天气信息 乱弹ruby on rails目录下面的文件数有3万多个 Ruby on rails 2.0.2傻瓜入门之Hello world Javascript代码压缩、加密算法的破解分析及工具实现 【翻译】Oracle不同版本之间Export & Import的兼容性矩阵
Jquery中增加参数与Json转换代码 - 在路上... - 博客园
在路上... · 2009-11-20 · via 博客园 - 在路上...

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

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

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

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

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('');
    };