新書推薦:
《
治盗之道:清代盗律的古今之辨
》
售價:NT$
556.0
《
甲骨文丛书·剑桥世界暴力史(第一卷):史前和古代世界(套装全2册)
》
售價:NT$
959.0
《
甲骨文丛书·中华早期帝国:秦汉史的重估
》
售價:NT$
1367.0
《
欲望与家庭小说
》
售價:NT$
449.0
《
惜华年(全两册)
》
售價:NT$
320.0
《
甲骨文丛书·古代中国的军事文化
》
售價:NT$
454.0
《
中国王朝内争实录(套装全4册):从未见过的王朝内争编著史
》
售價:NT$
1112.0
《
半导体纳米器件:物理、技术和应用
》
售價:NT$
806.0
|
編輯推薦: |
JSON和XML是较为流行的数据交换格式,在Web API、NoSQL数据库、服务端编程语言和客户端框架中都可以看到JSON的身影。在不同平台间的传递数据方面,JSON已成为XML强有力的替代者。与XML相比,JSON更加简洁且易于阅读,同时方便检查排错。另外,JSON更加轻量级,不管是编写、传输,还是解析都更加高效。JSON在传输过程中采用了压缩技术,因而更加节省带宽。*后,JSON还得到了众多语言的支持,如JavaScript、Python、C、C等主流语言。
|
內容簡介: |
本书详细阐述了与JSON相关的基本解决方案,主要包括JSON简介、JSON结构、基于JSON的AJAX请求、跨域异步请求、JSON调试、构建Carousel应用程序、JSON的替代方案、hapi.js简介、在MongoDB中存储JSON文档、利用JSON配置任务管理器、实时系统和分布式系统中的JSON、JSON用例等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。 本书既可作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和参考手册。
|
目錄:
|
目 录
第1章 JSON简介 1
1.1 数据交换格式JSON 1
1.2 基于JSON的Hello World程序 4
1.3 如何在内存中存储JSON 6
1.4 JSON的数据类型 8
1.5 支持JSON的编程语言 10
1.5.1 PHP中的JSON实现 11
1.5.2 Python中的JSON实现 12
1.6 本章小结 14
第2章 JSON结构 15
2.1 插入外部JavaScript 15
2.2 访问JSON中的对象 16
2.3 执行复杂的操作 19
2.4 修改JSON 22
2.5 本章小结 24
第3章 基于JSON的AJAX请求 25
3.1 基本的Web操作 25
3.2 AJAX需求 26
3.3 托管JSON 28
3.4 第一个AJAX调用 30
3.4.1 传统的回调 35
3.4.2 利用Promise处理异步操作 36
3.4.3 新的ECMAScript生成器 37
3.5 解析JSON数据 40
3.6 本章小结 41
第4章 跨域异步请求 42
4.1 API 42
4.2 利用JSON数据生成GET和POST调用 42
4.3 跨域AJAX调用存在的问题 51
4.4 JSONP简介 53
4.4.1 服务器端实现 53
4.4.2 在客户端(浏览器)实现JSONP 54
4.5 本章小结 56
第5章 JSON调试 57
5.1 使用开发工具 57
5.2 验证JSON 60
5.3 格式化JSON 61
5.4 本章小结 62
第6章 构建Carousel应用程序 64
6.1 配置Carousel应用程序 64
6.2 生成Carousel应用程序的JSON文件 65
6.3 Bootstrap简介 71
6.3.1 设置Bootstrap 71
6.3.2 Bootstrap响应性和样式 72
6.4 本章小结 76
第7章 JSON的替代方案 77
7.1 依赖关系管理 77
7.1.1 在PHP中使用composer.json 77
7.1.2 基于package.json的Node.js 78
7.2 存储应用程序配置的JSON 79
7.2.1 PHP和Python中的配置 79
7.2.2 在Angular 5中进行配置 81
7.3 存储应用程序元数据的JSON 86
7.3.1 Angular 5中的元数据 86
7.3.2 Node.js中的常量 87
7.3.3 模板嵌入机制 88
7.4 与YAML进行比较 91
7.5 本章小结 92
第8章 hapi.js简介 93
8.1 利用JSON实现基本的服务器配置 93
8.2 使用JSON元数据和常量 95
8.3 利用JSON配置API 97
8.4 在hapi中配置插件 99
8.5 使用POSTMAN测试API 101
8.5.1 使用POSTMAN测试hapi服务器调用 102
8.5.2 POSTMAN下的JSON 103
8.6 本章小结 106
第9章 在MongoDB中存储JSON文档 107
9.1 配置MongoDB 107
9.2 连接hapi App与MongoDB 109
9.3 JSON和BSON 111
9.3.1 集合 112
9.3.2 MongoDB shell 112
9.4 插入一个JSON文档 114
9.5 检索JSON文档 117
9.6 MongoDB中基于JSON的模式 118
9.7 本章小结 122
第10章 利用JSON配置任务管理器 123
10.1 任务管理器的含义 123
10.2 gulp.js简介 123
10.3 在gulp.js中创建任务 124
10.4 自动化测试 131
10.5 gulp JSON配置 133
10.6 本章小结 134
第11章 实时系统和分布式系统中的JSON 135
11.1 基于Socket.IO的JSON 135
11.1.1 设计pinboard 135
11.1.2 配置Socket.IO服务器 137
11.1.3 配置Socket.IO客户端 139
11.2 在Apache Kafka中使用JSON 146
11.2.1 配置Apache Kafka 147
11.2.2 利用Socket.IO应用程序实现Kafka 148
11.3 本章小结 153
第12章 JSON中的用例 154
12.1 GeoJSON 地理空间JSON数据格式 154
12.2 JSONLD 针对SEO的JSON格式 155
12.3 BSON 快速遍历的JSON格式 157
12.4 messagePack 157
12.5 本章小结 158
|
內容試閱:
|
前 言
JSON是数据交换的一种标准格式,本书将通过各种示例讨论JSON在Web开发中饰演的不同角色。在阅读完本书后,读者将会以全新的角度理解应用程序的解决方案和复杂问题的处理方式。
适用读者
如果读者是一名对JavaScript或PHP开发有着基本了解的Web人员,并且希望编写JSON数据进而将其与RESTful API集成,以创建快速、可伸缩的应用程序,那么,本书将十分适合于您。
本书内容
第1章:JSON简介。将讨论JSON的历史及其工作方式和内存中的存储方式。另外,本章还将介绍一些支持JSON的、较为流行的编程语言。在本章结束时,还将利用不同的JSON数据类型编写一个较为基础的应用程序。
第2章:JSON结构。将利用多种数据类型、多个对象和多维数据进一步丰富JSON实现。
第3章:基于JSON的AJAX请求。将探讨基于JSON数据的AJAX请求,并通过HTTP请求传递JSON数据,以及处理此类问题的异步技术。
第4章:跨域异步请求。介绍跨域的异步调用这一概念。由于数据将在域间进行传输,因而用户有必要了解基于填充(padding)的JSON设疑概念,即JSONP。
第5章:JSON调试。将讨论可用于调试、验证和格式化JSON的强大工具。
第6章:构建Carousel应用程序。实现了Carousel应用程序的编程思想,以及应用程序所需的设置项和依赖项,如jQuery库和jQuery Cycle插件,并使用Bootstrap来维护应用程序的基本设计。
第7章:JSON的替代方案。讨论了JSON的非Web开发实现,如依赖项管理器、元数据存储和配置存储。
第8章:hapi.js简介。介绍在Hapi服务器中实现基于JSON的配置,并借助于Hapi创建RESTful API。
第9章:在MongoDB中存储JSON文档。讨论MongoDB,以及JSON在MongoDB中的使用方式。随后,本章还将介绍如何在MongoDB文档上执行不同的操作。
第10章:利用JSON配置任务管理器。将简要描述gulp.js库。Gulp是一个功能强大的库,主要用于构建任务的管理并提供相关工具。
第11章:实时系统和分布系统中的JSON。通过实现socket.io服务器,使读者熟悉JSON数据在实时Web应用程序中的应用,以及Apache Kafka。
第12章:JSON中的用例。将讨论一个用例,并考查JSON针对不同领域的增强方案,以及移植后JSON所提供的各种优点。
阅读方式
如果读者是一名Web开发的初学者,可从第1章开始阅读,并了解JSON中的基础知识。另外,前5章简单易懂且便于操作。在后续学习过程中,读者可尝试实现每章所提供的代码片段。
随着时间的推移,读者还可在StackOverflow或GitHub等论坛上进行讨论,以确保书中的所有问题均已被解决。
软件环境和资源下载
读者可访问http:www.packtpub.com并通过个人账户下载示例代码文件。另外,在http:www.packtpub.comsupport中注册成功后,我们将以电子邮件的方式将相关文件发与读者。
读者可根据下列步骤下载代码文件。
? 利用电子邮件和密码登录或注册我们的网站www.packtpub.com。
? 单击SUPPORT选项卡。
? 单击Code Downloads & Errata。
? 在Serach文本框中输入书名。
当文件下载完毕后,确保使用下列最新版本软件解压文件夹。
? Windows系统下的WinRAR7-Zip。
? Mac系统下的ZipegiZipUnRarX。
? Linux系统下的7-ZipPeaZip。
另外,读者还可访问GitHub获取本书的代码包,对应网址为https:github.com PacktPublishingJavaScript-and-JSON-Essentials-Second-Edition。
此外,读者还可访问https:github.comPacktPublishing以了解丰富的代码和视频资源。
最后,读者还可访问https:www.packtpub.comsitesdefaultfilesdownloadsJavaScript
andJSONEssentialsSecondEdition_ColorImages.pdf以下载并查看书中的图片。
本书约定
本书通过不同的文本风格区分相应的信息类型。下面通过一些示例对此类风格以及具体含义的解释予以展示。
代码块如下所示。
forlet j=0;j {
res.writeHead200, {
"Content-Type": "applicationjson"
};
res.writeJSON.stringify{
greet : "Hello Readers!"
};
res.end;
}.listenport;
console.log`Node Server is running on port : ${port}`
命令行输入或输出则采用下列方式表达。
$ mkdir test-node-app
$ cd test-node-app
$ npm init
图标则表示较为重要的说明事项。
图标则表示提示信息和操作技巧。
读者反馈和客户支持
欢迎读者对本书的建议或意见予以反馈。
对此,读者可向feedback@packtpub.com发送邮件,并以书名作为邮件标题。若读者对本书有任何疑问,均可发送邮件至questions@packtpub.com,我们将竭诚为您服务。
若读者针对某项技术具有专家级的见解,抑或计划撰写书籍或完善某部著作的出版工作,则可访问www.packtpub.comauthors。
勘误表
尽管我们在最大程度上做到尽善尽美,但错误依然在所难免。如果读者发现谬误之处,无论是文字错误抑或是代码错误,还望不吝赐教。对此,读者可访问http:www.packtpub. comsubmit-errata,选取对应书籍,单击ErrataSubmissionForm超链接,并输入相关问题的详细内容。
版权须知
一直以来,互联网上的版权问题从未间断,Packt出版社对此类问题异常重视。若读者在互联网上发现本书任意形式的副本,请告知网络地址或网站名称,我们将对此予以处理。关于盗版问题,读者可发送邮件至copyright@packtpub.com。
问题解答
若读者对本书有任何疑问,均可发送邮件至questions@packtpub.com,我们将竭诚为您服务。
|
|