jQuery 字符串 和 JSON 相互转换

在提交数据时,可能因为接口的原因,需要将JSON数据序列化为字符串,或者将字符串转为JOSN对象。

首先聊一天将JSON数据序列化为字符串

emmmm....小编这次没有骚操作。经查阅jQuery的API后,jQuery 已经有封装好的方法 $.param( obj ) 

$.param( obj ) ,功能描述:一个用来序列化的一个数组,一个普通的对象,或一个jQuery对象。

经小编测试后,序列化一个数组全是 undefined ,可能是小编姿势不对。下面主要演示对象序列化

var author = {name: 'helang', email: '[email protected]'};
var str1=$.param(author);
console.log(str1);   // name=helang&email=helang.love%40qq.com

通过 $.param( obj ) 方法成功的序列化成字符串,但是有个"不能算是坑的坑",那就是字符串中的 "@" 被 encodeURIComponent 函数编码了,需要重新解码才能正确显示。

console.log(decodeURIComponent(str1));  //  [email protected]

通过 decodeURIComponent 函数解码后成功“绕坑”。

接下来说一说将字符串转为JOSN对象

先封装一个 jQuery 的类级别插件扩展,保证在代码的调用上代码风格的统一

$.extend({
    /* 解析为JSON */
    "parseJSON":function (str) {
        var strArr=str.split("&");
        var searchJSON={};
        $.each(strArr,function (index,item) {
            var item=item.split("=");
            searchJSON[item[0]]=decodeURIComponent(item[1]);
        });
        return searchJSON;
    }
});

调用方法:

var json1=$.parseJSON(str1);
console.log(json1);    //{name: "helang", email: "[email protected]"}

一波完美的操作后,本篇文章的内容就在这里结束了。文章的高潮一般都在结尾部分,所以请在复制代码时,注意示例代码中变量的顺序。别忘了持续关注我,么么哒!

作者:黄河爱浪 QQ:1846492969,邮箱:[email protected]

微信公众号:web-7258,本文原创,著作权归作者所有,转载请注明原链接及出处。

更多精彩文章,请扫下方二维码关注我的公众号

你可能感兴趣的:(jQuery,jq,param,parseJSON,序列化字符串,转为JSON)