jQuery 字符串 和 JSON 相互转换

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

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

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

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

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

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

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

console.log(decodeURIComponent(str1));  //  name=helang&email=helang.love@qq.com

通过 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: "helang.love@qq.com"}

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

作者:黄河爱浪 QQ:1846492969,邮箱:helang.love@qq.com

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值