前 言
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.com/support中注册成功后,我们将以电子邮件的方式将相关文件发与读者。
读者可根据下列步骤下载代码文件。
? 利用电子邮件和密码登录或注册我们的网站www.packtpub.com。
? 单击SUPPORT选项卡。
? 单击Code Downloads & Errata。
? 在Serach文本框中输入书名。
当文件下载完毕后,确保使用下列最新版本软件解压文件夹。
? Windows系统下的WinRAR/7-Zip。
? Mac系统下的Zipeg/iZip/UnRarX。
? Linux系统下的7-Zip/PeaZip。
另外,读者还可访问GitHub获取本书的代码包,对应网址为https://github.com/ PacktPublishing/JavaScript-and-JSON-Essentials-Second-Edition。
此外,读者还可访问https://github.com/PacktPublishing/以了解丰富的代码和视频资源。
最后,读者还可访问https://www.packtpub.com/sites/default/files/downloads/JavaScript
andJSONEssentialsSecondEdition_ColorImages.pdf以下载并查看书中的图片。
本书约定
本书通过不同的文本风格区分相应的信息类型。下面通过一些示例对此类风格以及具体含义的解释予以展示。
代码块如下所示。
for(let j=0;j
designations+= `, ${data_json[i].designation.title[j]}`;
}
当某个代码块希望引起读者的足够重视时,一般会采用黑体表示,如下所示。
const http = require('http');
const port = 3300;
http.createServer((req, res) => {
res.writeHead(200, {
"Content-Type": "application/json"
});
res.write(JSON.stringify({
greet : "Hello Readers!"
}));
res.end();
}).listen(port);
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.com/authors。
勘误表
尽管我们在最大程度上做到尽善尽美,但错误依然在所难免。如果读者发现谬误之处,无论是文字错误抑或是代码错误,还望不吝赐教。对此,读者可访问http://www.packtpub. com/submit-errata,选取对应书籍,单击ErrataSubmissionForm超链接,并输入相关问题的详细内容。
版权须知
一直以来,互联网上的版权问题从未间断,Packt出版社对此类问题异常重视。若读者在互联网上发现本书任意形式的副本,请告知网络地址或网站名称,我们将对此予以处理。关于盗版问题,读者可发送邮件至copyright@packtpub.com。
问题解答
若读者对本书有任何疑问,均可发送邮件至questions@packtpub.com,我们将竭诚为您服务。