博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript高级程序设计-摘要笔记-6
阅读量:6971 次
发布时间:2019-06-27

本文共 2353 字,大约阅读时间需要 7 分钟。

关于JSON

1. JSON 对象

es5 定义了全局对象 JSON。

支持的浏览器有 IE8+ 、Firefox 3.5+ 、Safari 4+、Chrome、Opera 10.5+

2. JSON.stringify()

JSON.stringify() 除了接受要序列化的对象外,还可以接受另外两个参数。

第一个参数是一个过滤器,可以是一个数组或函数,第二个参数是一个选项,表示是否在JSON字符串中保留缩进。
如:

var book = {  title: 'Professional JS',  authors: ['abc', 'def'],  edition: 3,  year: 2011}

第一个参数是数组

var jsonText1 = JSON.stringify(book, ['title', 'edition'])console.log(jsonText1) // '{"title":"Professional JS","edition":3}'

第一个参数是函数

var jsonText2 = JSON.stringify(book, function (key, value) {  switch (key) {    case 'authors':      return value.join(',');    case 'year':      return 2016;    case 'edition':      return undefined;    default:      return value;  }})console.log(jsonText2) // '{"title":"Professional JS","authors":"abc,def","year":2016}'

第二个参数用于控制结果中的缩进和空白符。

如果是数值,则表示每个级别缩进的空格数,最大10,超过10 的值自动转换成10。
如果是字符串,则用作缩进字符。字符串长度超过10,结果中将只出现前10个字符。
会在结果字符串中插入换行符提高可读性。
如:

var jsonText3 = JSON.stringify(book, null, 6)console.log(jsonText3)// '{//       "title": "Professional JS",//       "authors": [//             "abc",//             "def"//       ],//       "edition": 3,//       "year": 2011// }'var jsonText4 = JSON.stringify(book, null, '--')console.log(jsonText4)// '{// --"title": "Professional JS",// --"authors": [// ----"abc",// ----"def"// --],// --"edition": 3,// --"year": 2011// }'

3. toJSON() 方法

可以给对象定义 toJSON() 方法,返回自身的 JSON 数据格式,此方法优先级最高

如:

var book = {  title: 'Professional JS',  authors: ['abc', 'def'],  edition: 3,  year: 2011,  toJSON: function () {    return {      name: 'wfc'    }  }}var jsonText = JSON.stringify(book, null, 1)console.log(jsonText)// '{//  "name": "wfc"// }'注意: JSON.stringify() 处理的优先级为 toJSON() => 第二个参数 => 第三个参数。

4. JSON.parse()

JSON.parse() 接受另一个参数,该参数是一个函数,将在每个健值对上采用,类似于 JSON.stringify() 的过滤函数。

如:

var book = {  title: 'Professional JS',  authors: ['abc', 'def'],  edition: 3,  year: 2011,  releaseDate: new Date(2016,11,22)}var jsonText = JSON.stringify(book, null, 1)console.log(jsonText)// '// json.html:48 {//  "title": "Professional JS",//  "authors": [//   "abc",//   "def"//  ],//  "edition": 3,//  "year": 2011,//  "releaseDate": "2016-12-21T16:00:00.000Z"// }'var copyBook = JSON.parse(jsonText, function (key, value) {  if (key === 'releaseDate') {    console.log(value) // '2016-12-21T16:00:00.000Z'    return new Date(value)  } else {    return value  }})

JSON部分结束

转载地址:http://jbosl.baihongyu.com/

你可能感兴趣的文章
ORACLE存储过程 练习系列三 失效或者生效指定表的外键
查看>>
用户表空间查询
查看>>
求整数数组中最大子数组的和
查看>>
hdu2546-饭卡???
查看>>
Silverlight 获取控件间的相对位置
查看>>
vscode icon in elementary os
查看>>
Android环境搭建(Windows)
查看>>
MSHFLEXGRID控件常用属性
查看>>
去除iframe滚动条
查看>>
在WORD表格按列添加时间的一种方法
查看>>
poj 2455 Secret Milking Machine
查看>>
Linux 中,如何显示 (gcc)make时实际执行命令
查看>>
每个程序员都应该了解的内存知识(2)-CPU caches
查看>>
solr error logs org.apache.solr.common.SolrException: ERROR: [doc=17] unknown field alias
查看>>
django 项目创建使用
查看>>
简单的Verilog测试模板结构
查看>>
接口数据加密
查看>>
vue-router-transiton
查看>>
Micresoft Dynamices CRM 中的Webresouce
查看>>
DevExpress之TreeList节点绑定图片
查看>>