JS复习:第二十章
一、JSON
1.JSON的语法可以表示以下三种类型的值:
(1)简单值:字符串、数值、布尔值和null。如:5,“Hello,World!”
(2)对象:javascript中对象字面量:
var person = {
name : "Nicholas",
age : 29
};
JSON表示上述对象的方式如下:
{
"name" : "Nicholas",
"age" : 29
}
也可以像下面这样嵌入对象:
{
"name" : "Nicholas",
"age" : 29,
"school" : {
"name" : "Merrimack College",
"location" : "North Andover,MA"
}
}
与javascript不同,JSON对象的属性名必须始终加双引号。
(3)数组:JSON数组采用的就是javascript中的数组字面量形式。
例如,下面是javascript中的数组字面量:
var values = [25,"hi",true];
在JSON中,可以采用同样的语法表示同一个数组:
[25,"hi",true]
把数组和对象结合起来,可以构成更复杂的数据集合:
[
{
"title" : "Professional JavaScript",
"authors" : [
"Nicholas C. Zakas"
],
edition : 3,
year : 2011
},
{
"title" : "Professional JavaScript",
"authors" : [
"Nicholas c. Zakas"
],
edition : 2.
year : 2009
},
]
对象和数组通常是JSON数据结构的最外层形式。
二、序列化选项
stringify( )和parse( )
stringify( )接收两个参数:第一个参数可以是一个数组也可以是一个函数;第二个参数是一个选项,表示是否在JSON字符串中保留缩进。
1.过滤结果:
如果过滤器参数是数组,那么JSON.stringify( )的结果中将只包含数组中列出的属性。例如:
var book = {
[
{
"title" : "Professional JavaScript",
"authors" : [
"Nicholas C. Zakas"
],
edition : 3,
year : 2011
},
]
};
var jsonText = JSON.stringify( book ,["title" , "edition"] );
JSON.stringify( )的第二个参数是一个数组,其中包含两个字符串:"title"和"edition"。因此返回的数据就只会包含这两个属性:{"title":"Professional JavaScript","edition:3"}
2.字符缩进
JSON.stringify( )的第三个参数用于控制结果中的缩进和空白符。例如,要在每个级别缩进4个空格,可以这样写代码:
var book={
"title" : "Professional JavaScript",
"authors" : [
"Nicholas C. Zakas"
],
edition : 3,
year : 2011
};
var jsonText = JSON.stringify(book,null,4);
保存在jsonText中的字符串如下所示:
{
"title":"Professional JavaScript",
"authors":[
"Nicholas C. Zakas"
],
"edition":3,
"year":2011
}
3.toJSON( )方法
可以为任意对象添加toJSON( )方法,比如:
var book={
"title" : "Professional JavaScript",
"authors" : [
"Nicholas C. Zakas"
],
edition : 3,
year : 2011
toJSON : function( ){
return this.title;
}
};
var jsonText = JSON.stringify(book);
JS复习:第二十章的更多相关文章
- JS复习--更新结束
js复习-01---03 一 JS简介 1,文档对象模型 2,浏览器对象模型 二 在HTML中使用JS 1,在html中使用<script></script>标签 2,引入外部 ...
- JavaScript高级程序设计:第二十章
第二十章 一.语法 JSON的语法可以表示以下三种类型的值: (1)简单值 (2)对象 JSON的对象与javascript字面量有一些不同.例如,在javascript中,前面的对象字面量可以写成下 ...
- 第二十章 Django数据库实战
第二十章 Django数据库实战 第一课 获取单表单数据的三种方式: urls.py中的路由代码: path('busniess',views.busniess), views.py中代码: def ...
- Gradle 1.12翻译——第二十章. 构建环境
有关其他已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或访问:http://gradledoc.qiniudn.com ...
- “全栈2019”Java多线程第二十章:同步方法产生死锁的例子
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- “全栈2019”Java异常第二十章:自定义异常详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java异 ...
- “全栈2019”Java第二十章:按位与、按位或、异或、反码、位运算
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- 2017.3.14 activiti实战--第二十章--REST服务
学习资料:<Activiti实战> 第二十章 REST服务 20.1 通信协议概述 略. 20.2 REST API概述 资源分类 资源基础URI 说明 Deployments manag ...
- python 教程 第二十章、 数据库编程
第二十章. 数据库编程 环境设置 1).安装MySQL-python http://www.lfd.uci.edu/~gohlke/pythonlibs/ MySQL-python-1.2.3.win ...
- 20190920 On Java8 第二十章 泛型
第二十章 泛型 多态的泛化机制: 将方法的参数类型设为基类: 方法以接口而不是类作为参数: 使用泛型: 泛型实现了参数化类型 简单泛型 Java 泛型的核心概念:你只需告诉编译器要使用什么类型,剩下的 ...
随机推荐
- PWA - 渐进式网络应用初认识
Progressive Web Apps 简称PWA,是一种接近原生用户体验的渐进增强的web-app.从浏览器演进而来,沉浸式的体验,改进web的性能低下等.是Google 在2015年提出,今年才 ...
- poj 2689 Prime Distance(大区间素数)
题目链接:poj 2689 Prime Distance 题意: 给你一个很大的区间(区间差不超过100w),让你找出这个区间的相邻最大和最小的两对素数 题解: 正向去找这个区间的素数会超时,我们考虑 ...
- nyoj 79 拦截导弹 (动态规划)
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=79 题意即求最长单调递减子序列 #include<iostream> #inc ...
- redis(1)
一.Redis介绍 Redis 是一款开源的,基于 BSD 许可的,高级键值 (key-value) 缓存 (cache) 和存储 (store) 系统.由于 Redis 的键包括 string,ha ...
- H5 App页面 绝对定位 软键盘弹出时顶起底部按钮
做H5 App页面时,有时候,按钮可能会放到页面的最底下,这个时候可能会用到绝对定位(position: absolute),但是,当input 输入框被点击时,弹出的软键盘会顶起底部的按钮,就像这样 ...
- const 那点事儿
修饰变量时 const char 与 char const 是等价的,例如 const char a = 'a'; char const a = 'a'; 表示变量a不能再被赋予其他值. 到指针时情况 ...
- 面向对象UML中类关系
如果你确定两件对象之间是is-a的关系,那么此时你应该使用继承:比如菱形.圆形和方形都是形状的一种,那么他们都应该从形状类继承而不是聚合.如果你确定两件对象之间是has-a的关系,那么此时你应该使用聚 ...
- 《css揭秘》
<css揭秘> 第一章:引言 引言 案例们 第二章:背景与边框 背景和边框 半透明边框(rgba/hsla.background-clip) 多重边框(box-shadow) 灵活的背景定 ...
- hdu 3480 Division(斜率优化DP)
题目链接:hdu 3480 Division 题意: 给你一个有n个数的集合S,现在让你选出m个子集合,使这m个子集合并起来为S,并且每个集合的(max-min)2 之和要最小. 题解: 运用贪心的思 ...
- 浙大 pat 1003 题解
1003. Emergency (25) 时间限制 400 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue As an emerg ...