【红宝书】第20章.JSON
JSON是一种轻量级的数据格式。JSON使用JS语法的子集表示对象、数组、字符串、数值、布尔值和null,不支持undefined
JSON.stringify()
// JSON.stringify(arg1,arg2,arg3)
// 第一个参数为要序列化的对象
// 第二个参数为过滤器,可以是数据或者方法,非必填
// 第三个参数为是否在JSON字符串中保留缩进,若是数值表示的是每个级别缩进的空格数,非必填
let book={
title:"九州缥缈录",
author:"江南",
year:2015,
chapter:['蛮荒','苍云古齿','天下名将','辰月之征','一生之盟','豹魂']
}
let jsonText1 = JSON.stringify(book,['title','author'])
console.log(jsonText1)
let jsonText2 = JSON.stringify(book,function(key,value){
switch(key){
case 'year':
return 2018
case 'author':
return '南大'
default:
return value
}
})
console.log(jsonText2)
// 主要传入有效的控制缩进的参数值,结果字符串就会包含换行符
let jsonText3 = JSON.stringify(book,null,4)
console.log(jsonText3)
toJSON()方法
let book1={
title:"九州缥缈录",
author:"江南",
year:2015,
chapter:['蛮荒','苍云古齿','天下名将','辰月之征','一生之盟','豹魂'],
toJSON:function(){
return {
title:this.title,
author:this.author
}
}
}
let jsonText4=JSON.stringify(book1,['title'],2)
console.log(jsonText4)
toJSON()可以作为函数过滤器的补充。假设把一个对象传入JSON.stringify(),序列化对象顺序如下:
- 如果存在toJSON()方法而且能通过它取得有效的值,则调用改方法,否则返回对象本身
- 如果提供了第二个参数,应用这个函数过滤器。传入函数过滤器的值是第1步返回的值
- 对第2步返回的每个值进行相应的序列化
- 如果提供了第三个参数,执行相应的格式化
JSON.parse()
let obj = JSON.parse(jsonText,function(key,value){
})
【红宝书】第20章.JSON的更多相关文章
- JS红宝书笔记——第一章 JavaScript简介
1.JavaScript简史 Netscape公司决定开发一种客户端语言用来处理浏览器端简单的表单验证. Netscape公司派布兰登·艾奇(BrendanEich)为计划于1995年2月发布的Net ...
- [转] VS2015中跑OpenGL红宝书第八版的第一章示例代码,运行
Ori Article Link OpenGL的东西快忘光了,把角落的第八版红宝书拿出来复习一下 从书中的地址下了个示例代码结果新系统(Win10+VS2015)各种跑不起来,懊恼之后在网上疯狂搜索资 ...
- 第5章 引用类型---JS红宝书书摘系列笔记
在ECMAScript中,引用类型是一种数据结构,用于将数据和功能组织在一起,描述的是一类对象所具有的属性和方法.而对象是某个特定引用类型的实例. 一.Object类型 可以通过Object构造函数创 ...
- VS2015中跑OpenGL红宝书第八版的示例代码
OpenGL的东西快忘光了,把角落的第八版红宝书拿出来复习一下 从书中的地址下了个示例代码结果新系统(Win10+VS2015)各种跑不起来,懊恼之后在网上疯狂搜索资料终于跑起来了,记录一下 一.环境 ...
- 【转载】关于在vs2013中配置opengl红宝书第八版环境
本文为转载 原文地址 http://blog.csdn.net/qq821869798/article/details/45247241 本人刚开始学习opengl,买了一本opengl红宝书第八版 ...
- 从今日起,我会把OpenGL红宝书上的例子用完整的代码形式写在我的博客中,
1.使用教程:OpenGL红宝书第8版 2.使用的库工具:GLEW和GLFW 3.使用的IDE:vs2012 4.说说目的:完整的看一遍OpenGL,加深印象并且熟练掌握运用OpenGL 5.欢迎有相 ...
- OpenGl编程指南第7版(红宝书)环境配制
环境 OS:win7 旗舰版SP1 64位 编译器: VS 2013 express 的cl 软件 glut. 在这个页面https://www.opengl.org/resources/librar ...
- 运行OpenGL红宝书第9版源码时Visual Studio提示“无法启动程序...ALL_BUILD。拒绝访问“的问题的解决办法
问题描述: OpenGL红宝书第9版源码采用CMake编译后,用相应的Visual Studio(如VS2012)打开“vermilion9.sln”解决方案,并运行时Visual Studio提示“ ...
- [OpenGL红宝书]第一章 OpenGL概述
第一章 OpenGL概述 标签(空格分隔): OpenGL 第一章 OpenGL概述 1 什么是OpenGL 2 初识OpenGL程序 3 OpenGL语法 4 OpenGL渲染管线 41 准备向Op ...
随机推荐
- 使用python2连接操作db2
在python2.6下连接db2,步骤: 1.安装python2.6. (注:目前db2的驱动还不支持2.7) 2.安装setuptools,下载地址http://pypi.python.org/py ...
- 2753:走迷宫(dfs+初剪)//可以说是很水了。。。
总时间限制: 1000ms 内存限制: 65536kB 描述 一个迷宫由R行C列格子组成,有的格子里有障碍物,不能走:有的格子是空地,可以走.给定一个迷宫,求从左上角走到右下角最少需要走多少步(数 ...
- 【Android - 控件】之V - Toolbar的使用
Toolbar是Android V7包中的一个控件,用来代替Action Bar作为界面的头部标题栏布局.Toolbar相对于Action Bar的特点是更加灵活,可以显示在任何位置. 首先先来看To ...
- petri 网理论与研究(第一节140915)
成绩 :70 大作业 和 30 的最后讨论 petri 是一个人的名字. 网状结构的信息流模型,和自动机有点像 理论体系发展比较慢 应用很远 1 EN,P/T,Pr/T,CPN,关系网……
- Nginx负载均衡、SSL原理、生成SSL密钥对、Nginx配置SSL
6月12日任务 12.17 Nginx负载均衡12.18 ssl原理12.19 生成ssl密钥对12.20 Nginx配置ssl扩展 针对请求的uri来代理 http://ask.apelearn.c ...
- VS2019提示scanf不安全问题
VS2019提示scanf不安全问题 我们现在学的就是使用scanf()语句进行输入,但是vs2019中却报错显示不安全 首先我先来说一下scanf和scanf-s的区别 scanf()函数是标准C中 ...
- python中的局部变量和全局变量
- vars()
返回一个字典,包含所有在本函数调用时存在的变量
- 整合多个maven工程时Spring配置加载JDBC问题
问题叙述: 两个工程都通过JDBC访问mysql数据库,各自运行OK, 但合并成一个maven工程后,发现前一个工程访问数据库异常,貌似拿不到自己的DAO. 解决办法: 发现这两个工程的xml配置中, ...
- http状态码_____ 204/206/200
HTTP的状态码有很多种,主要有五个大类 1xx(临时响应) 2xx(成功) 3xx(已重定向) 4xx(请求错误) 5xx(服务器错误) 每个大类还对应一些具体的分类.平时我们接触比较多的是200. ...