jQuery 字符串 和 JSON 相互转换

布满荆棘的人生 2022-01-05 06:03 489阅读 0赞

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

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

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

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

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

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

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

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

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

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

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

  1. $.extend({
  2. /* 解析为JSON */
  3. "parseJSON":function (str) {
  4. var strArr=str.split("&");
  5. var searchJSON={};
  6. $.each(strArr,function (index,item) {
  7. var item=item.split("=");
  8. searchJSON[item[0]]=decodeURIComponent(item[1]);
  9. });
  10. return searchJSON;
  11. }
  12. });

调用方法:

  1. var json1=$.parseJSON(str1);
  2. console.log(json1); //{name: "helang", email: "helang.love@qq.com"}

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

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

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

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

20190512094840637.jpg

发表评论

表情:
评论列表 (有 0 条评论,489人围观)

还没有评论,来说两句吧...

相关阅读