from:http://blog.csdn.net/gjb724332682/article/details/46682743

前言

json2.js是一个json插件,下载地址:https://github.com/douglascrockford/JSON-js

它包含两个方法,JSON.stringify(value, replacer, space)和JSON.parse(text, reviver)

JSON.stringify(value, replacer, space)

value

要序列化的值,可以是数组或者对象。

replacer

可选参数,可以是一个函数或者一个数组,函数可以根据键替换旧的值,而数组可以决定要序列化的键。

space

可选参数,排版用的,如果它是数值,表示在每层缩进多少个空格,如果是字符串,例如 '\t' 或者' ',表示在每层使用这个字符来缩进。

例子

  1. 1、console.log(JSON.stringify([{a: "诶"}, {b: "比"}]));
  2. 结果:
  3. [{"a":"诶"},{"b":"比"}]
  4. 2、console.log(JSON.stringify([{a: "诶"}, {b: "比"}],null,"\t"));
  5. 结果:
  6. [
  7. {
  8. "a": "诶"
  9. },
  10. {
  11. "b": "比"
  12. }
  13. ]
  14. 3、console.log(JSON.stringify([{a: "诶"}, {b: "比"}],["a"]));
  15. 结果:
  16. [{"a":"诶"},{}]
  17. 4、var jsonText = JSON.stringify({
  18. a : "诶",
  19. b : "比"
  20. },jsonConvert);
  21. function jsonConvert(key, value) {
  22. switch (key) {
  23. case "a":
  24. return "A";
  25. case "b":
  26. return "B";
  27. default:
  28. return value;
  29. }
  30. }
  31. console.log(jsonText);
  32. 结果:
  33. {"a":"A","b":"B"}
  34. 5、有时候JSON.stringify()还是不能满足对某些对象进行自定义序列化的需求,在这些情况下,可以通过对象上调用toJSON()方法,返回其自身的JSON数据格式。
  35. 例如:console.log(JSON.stringify({a: "诶",b: "比",toJSON:function(){return "自定义"}});结果是返回"自定义".

JSON.parse(text, reviver)

text

要解析的字符串。

reviver

可选参数,是一个函数,用于过滤和转换结果,它接收每一对键值对并执行这个函数,记住,最后一定要加上return value。

例子

  1. 1、console.log(JSON.parse('{"a":"诶","b":"比"}'));
  2. 结果:
  3. Object { a="诶",  b="比"}
  4. 2、console.log(JSON.parse('{"a":"诶","b":"比"}',function(key,value){
  5. if(key=="a"){
  6. return "A";
  7. }else if(key=="b"){
  8. return "B";
  9. }
  10. return value;
  11. }));
  12. 结果:
  13. Object { a="A",  b="B"}

jQuery插件-json2.js的更多相关文章

  1. 另外一款超棒的响应式布局jQuery插件 – Freetile.js

    在线演示 我们曾经介绍过俩款知名的响应式布局插:isotope和masonary,今天我们这里再介绍一款相当不错的响应式布局插件 – Freetile.js,使用它同样可以生成超酷的动态布局效果.相信 ...

  2. 帮助更语义化的显示时间的jQuery插件 - tidyTime.js

    来源:GBin1.com 网站或者web应用开发过程中,难免会遇到需要展示时间的地方,例如,留言时间或者发布帖子的时候,那么大家是不是相关过使用更加符合语义学的方式来显示时间呢? 08:15  显示成 ...

  3. JQuery插件supersized.js实现背景图片淡入浅出

    淡入浅出的网站背景图片切换,其实是引用了JQuery插件supersized,效果很炫吧.其实这个插件功能很强大,可以做很多图片类的效果.这些需要等待我们自己去探索. 下面是这个效果的代码只有一行: ...

  4. JQuery插件 aos.js

    简介: aos.js是一款效果超赞的页面滚动元素动画jQuery动画库插件.该动画库可以在页面滚动时提供28种不同的元素动画效果,以及多种easing效果.在页面往回滚动时,元素会恢复到原来的状态. ...

  5. html select美化模拟jquery插件select2.js

    代码展示:http://www.51xuediannao.com/demo.php 代码说明: select2.js是一个html select美化模拟类jquery插件,但是select2.js又远 ...

  6. 延迟加载图片的 jQuery 插件——lazyload.js

    lazyload 这个 jQuery 插件,是用来缓冲加载图片的插件.如果一篇文章很长有很多图片的话,下载图片就需要很多时间.而这款插件,会检测你的滚动情况,只有你要看到那个图片的时 候,它才会从后台 ...

  7. jquery插件lazyload.js延迟加载图片的使用方法

    如果一个网页很长并且有很多图片的话,下载图片就需要很多时间,那么就会影响整个网页的加载速度,而这款延迟加载插件,会通过你的滚动情况来加载你需要看的图片,然后它才会从后台请求下载图片,最后显示出来.通过 ...

  8. jquery插件--ajaxfileupload.js上传文件原理分析

    英文注解应该是原作者写的吧~说实话,有些if判断里的东西我也没太弄明白,但是大致思路还是OK的. jQuery.extend({ createUploadIframe: function (id, u ...

  9. 【微收藏】来自Twitter的自动文字补齐jQuery插件 - Typeahead.js

    没图没逼格 事发有因 该插件可以结合本地数据进行一些操作.推荐关注一下H5的几种数据存储的方式(localstorage与sessionstorage.IndexedDB.离线缓存manifest文件 ...

随机推荐

  1. 高精度整数 - a+b(王道)

    题目描述: 实现一个加法器,使其能够输出a+b的值. 输入: 输入包括两个数a和b,其中a和b的位数不超过1000位. 输出: 可能有多组测试数据,对于每组数据,输出a+b的值 样例输入: 2 6 1 ...

  2. Java ArrayList的模拟实现

    package test; import java.util.Arrays; import java.util.Collection; public class MyArrayList<E> ...

  3. windows + myeclipse 调试 linux + tomcat 的java web服务 配置方式

    一.linux tomcat配置和启动 1.catalina.sh第一行加入 declare -x CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt ...

  4. MySQL Win7 64位 下载、安装与配置图文教程

    MySQL是目前十分流行的一种关系型数据库管理系统.官网推出的安装包有两种格式,分别是:ZIP格式和MSI格式.其中MSI格式的可以直接点击安装,按照它给出的安装提示进行安装,一般MySQL将会安装在 ...

  5. Windows COM Surrogate 已停止工作怎么办

    已解决 如何解决"COM Surrogate 已停止工作"问题 悬赏分:15 - 解决时间:2008-7-6 16:55 Vista系统,经常出现这个提示框,烦人. 我试了网上有关 ...

  6. 乌云主站所有漏洞综合分析&乌云主站漏洞统计

    作者:RedFree 最近的工作需要将乌云历史上比较有含金量的漏洞分析出来,顺便对其它的数据进行了下分析:统计往往能说明问题及分析事物的发展规律,所以就有了此文.(漏洞数据抓取自乌云主站,漏洞编号从1 ...

  7. web 前端 常见操作 将时间戳转成日期格式 字符串截取 使用mui制作选项卡

    1.将时间戳转成日期格式: //第一种 function getLocalTime(nS) { return new Date(parseInt(nS) * 1000).toLocaleString( ...

  8. xml文件的增删改读

    最近学习了利用XmlDocument对象对xml进行增删改读操作,就写了一个小的例子记录下来,加深印象,以后忘了也可以找出来看看. xml文件: <?xml version="1.0& ...

  9. vue 销毁组件

    销毁组件 // get~ 销毁组件 destroyElement() { this.$destroy(true); this.$el.parentNode.removeChild(this.$el); ...

  10. 论C++STL源代码中关于堆算法的那些事

    关于堆,我们肯定熟知的就是它排序的时间复杂度在几个排序算法里面算是比較靠上的O(nlogn)常常会拿来和高速排序和归并排序讨论,并且它还有个长处是它的空间复杂度为O(1), 可是STL中没有给我们提供 ...