听说JSON也能出本书?
Posted 图灵教育
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了听说JSON也能出本书?相关的知识,希望对你有一定的参考价值。
谈到 JSON,你的第一反应是什么?听说 JSON 也能出本书?费解!
没错,如果你 Google 搜索 JSON,你会发现 JSON 的官网,http://json.org/。官网上明确说明 JSON 是一种数据格式。不过基于这种格式它可以衍生出不少相关操作和工具:序列化/反序列化、搜索、转换、Schema、超媒体等。
所以,不懂的小伙伴还真要认真看看。图灵之前有出版过一本 JSON 入门书——《JSON必知必会》,这本书虽然只有 128 页,但是却包含了绝大部分你要知道的 JSON 知识,深受读者喜爱。
为了让大家在入门后能将所学用于实战,我们今天就为大家介绍一本新书《JSON实战》,这本是 Web 开发架构师指南,也是 JSON 实战宝典。
JSON 已经成为 RESTful 接口设计的事实标准,并在互联网数据交换领域日益受亲睐,是搭建优雅、高效应用程序的得力工具。
JSON 实战指南
全面掌握 JSON 强大功能的不二之选
本书来自于作者实际使用 JSON 的经验所得,主要内容包括 JSON 基础知识,对 JSON 数据建模,在Node.js、Ruby on Rails 和Java中使用JSON,结构化 JSON 文档并设计测试 API,搜索 JSON 文档的内容,将JSON文档转换成其他数据格式,将 JSON 作为企业级架构中的一部分来使用,等等。
什么是JSON?
在深入讨论 JSON 之前,先让我们对它有一个感性的认识。宏观上看,JSON 是一种轻量的数据格式,在各种地方传递数据。如果单用眼睛看,JSON 里的数据是被保存在花括号({})中的,而如果从用途上进一步分析,最终我们会得出结论:JSON 是一种数据交换格式。
JSON 数据格式使得应用程序可以通过 RESTful API 等方式在网络上进行数据通信。JSON 不局限于某项技术,本身非私有,且可移植。对于产生(序列化)和读取(反序列化) JSON 数据,所有的现代编程语言(Java、javascript、Ruby、C#、php、Python、Groovy 等)和平台都提供了良好的支持。
JSON 非常简单,由对象、数组和名称 - 值对这三种开发人员所熟悉的结构体所组成。除了表现层状态转化(REpresentational State Transfer,REST),JSON 在以下环境中也有所应用:
Node.js(在 package.json 中存储项目元数据);
MongoDB 等 NoSQL 数据库;
Kafka 等消息平台。
为什么使用JSON?
Ecma 国际和 IETF 所做的标准化工作帮助 JSON 获得了行业认可,但使 JSON 广为流行的却是其他一些因素:
基于 JSON 的 RESTful API 的爆发式增长;
JSON 基本数据结构的简洁性;
JavaScript 日渐流行。
JavaScript 的复兴推动了JSON 的流行。在过去几年中,我们见证了 JavaScript 作为一门顶级编程语言的崛起。JavaScript 生态系统既包含了 Node.js 这样的平台,也包含了 AngularJS、React、Backbone 和 Ember 这样的模型 / 视图 / 控制器(Mode/View/Controller,MVC)框架。有关 JavaScript 对象和模式最佳实践的图书和网站也层出不穷。按照 Douglas Crockford 的说法,JSON 是 JavaScript 对象字面量表示法的一个子集,因此可以无缝地与 JavaScript 开发融为一体。
数以千计的 RESTful API 使用了 JSON。以下是基于 JSON 的一些流行的 RESTful API:
LinkedIn
Twitter
Facebook
Salesforce
GitHub
DropBox
Tumblr
Amazon Web Services(AWS)
如果想要查看这几千个基于 JSON 的 RESTful API,可以访问 ProgrammableWeb,搜索关键词 REST 和 JSON,然后花上好几周来查阅结果。
JSON 非常简洁,并且正在逐步替代 XML 成为互联网上主要的数据交换格式。它易于阅读,相关结构也很容易与软件开发人员所熟悉的概念对应起来,如数组、对象和名称 - 值对。我们不用再挠头苦思某个东西应当是元素还是属性,也不用再就这一点与人争论不休。与 XML 相比,对象及其数据成员这一组合更适合面向对象的设计和开发。由于节省了每个数据元素的开始标签与结束标签,JSON 格式的额外开销更少、更为紧凑,所以 JSON 格式的文档一般比内容相同的 XML 文档小。从企业级应用的角度来看,与 XML 相比,JSON 文档在网络上的传输与处理更快,因此效率更高。
虽然 Douglas Crockford 在提出 JSON 时将其设计为一种数据交换格式(通常用于 REST),但如今 JSON 在配置文件领域也占有一席之地,如 Node.js 和 Sublime Text 等广泛使用的产品。Node.js 使用 package.json 文件来定义其标准的 npm 包结构。Sublime Text 则是 Web 开发社区中流行的一款 IDE,它使用 JSON 来配置外观及包管理器。
你会从书中学到什么?
阅读本书后,你会掌握的 10 项操作
在 Node.js、Ruby on Rails 以及 Java 中使用 JSON;
使用 JSON Schema 结构化 JSON 文档来设计并测试 API;
使用 JSON 搜索工具来搜索 JSON 文档的内容;
使用 JSON 转换工具将 JSON 文档转换成其他数据格式;
将 JSON 作为企业级架构中的一部分来使用;
比较 HAL、json:api 等 JSON 超媒体格式;
使用 MongoDB 来存储和访问 JSON 文档;
使用 Apache Kafka 在服务间交换 JSON 消息;
使用免费的 JSON 工具来简化测试;
通过简单的工具和类库,使用自己偏好的编程语言来调用 API。
作译者简介
汤姆•马尔斯(Tom Marrs),拥有多年企业架构经验,领导过各种企业级的API、Web、移动端、云和 SOA 项目。目前任 TEKsystems 全球服务部门企业架构师,促使公司采用了包括 REST、微服务和 JSON 在内的多项 API 架构与技术。Tom 还是敏捷开发的拥趸,并获得 Scrum 联盟的 CSM 认证。
邵钏,毕业于浙江大学生物科学系,热衷于提升产品的用户体验,在 UI 技术领域历经 Java Swing、Adobe Flex,终至 Web 前端。目前主要感兴趣的领域为物联网,并致力于相关产品 Uniboard 的设计开发。
内容概述
第一部分,JSON概述与平台
第 1 章 JSON 概述
这一章从概述 JSON 数据格式开始,描述使用 JSON 过程中的最佳实践,并介绍本书中所使用的工具。
第 2 章 在 JavaScript 中使用 JSON
这一章展示了如何在 JavaScript、Node.js、Mocha/Chai 单元测试中使用 JSON。
第 3 章 在 Ruby on Rails 中使用 JSON
这一章描述了如何在 Ruby 对象和 JSON 之间进行转换,以及如何与 Rails 进行集成。
第 4 章 在 Java 中使用 JSON
这一章讲述了如何在 Java 和 Spring Boot 中使用 JSON。
第二部分,JSON生态系统
第 5 章 JSON Schema
这一章将帮助你用 JSON Schema 对 JSON 文档进行结构化操作。同时,你还会学习如何生成 JSON Schema 并用其来设计 API。
第 6 章 在 JSON 中进行搜索
这一章展示了如何通过 jq 和 JSONPath 搜索 JSON 文档。
第 7 章 JSON 转换
这一章提供了工具,从而将设计糟糕的 JSON 文档转换为更优雅、更有用的 JSON 文档。这一章还介绍了如何在 JSON 与 XML、html 等其他格式间进行相互转换。
第三部分,JSON的企业级应用
第 8 章 JSON 与超媒体
这一章介绍了如何在 JSON 中使用多种知名的超媒体格式,如 HAL 和 jsonapi。
第 9 章 JSON 与 MongoDB
这一章展示了如何使用 MongoDB 来存储与处理 JSON 文档。
第 10 章 用 Kafka 实现 JSON 消息系统
这一章描述了如何使用 Apache Kafka 在服务间交换 JSON 消息。
目
第一部分 JSON概述与平台
第1 章 JSON概述 3
1.1 JSON是一项技术标准 3
1.2 示例 4
1.3 为什么使用JSON 5
1.4 JSON的核心概念 6
1.5 本书示例:MyConference 14
1.6 本章回顾 19
1.7 内容预告 19
第2 章 在JavaScript中使用JSON 20
2.1 安装Node.js 20
2.2 用JSON.stringify()和JSON.parse()进行序列化/反序列化操作 21
2.3 JavaScript对象和JSON 26
2.4 用模拟API进行单元测试 28
2.5 搭建小型Web应用程序 31
2.6 如何继续深入学习JavaScript 44
2.7 本章回顾 45
2.8 内容预告 45
第3 章 在Ruby on Rails中使用JSON 46
3.1 安装Ruby on Rails 46
3.2 Ruby中与JSON有关的gem包 46
3.3 用MultiJson进行序列化/ 反序列化操作 47
3.4 用模拟API 进行单元测试 54
3.5 用Ruby on Rails搭建小型Web API 59
3.6 本章回顾 69
3.7 内容预告 69
第4 章 在Java中使用JSON 70
4.1 安装Java和Gradle 70
4.2 Gradle概览 70
4.3 使用JUnit即可完成单元测试 72
4.4 Java 中的JSON类库 72
4.5 用Jackson进行JSON序列化/ 反序列化操作 73
4.6 用模拟API进行单元测试 79
4.7 用Spring Boot搭建小型Web API 83
4.8 本章回顾 90
4.9 内容预告 90
第二部分 JSON生态系统
第5 章 JSON Schema 93
5.1 JSON Schema概览 93
5.2 JSON Schema核心——基础知识与工具 97
5.3 如何使用JSON Schema设计和测试API 121
5.4 使用JSON Schema类库进行校验 130
5.5 如何继续深入学习JSON Schema 131
5.6 本章回顾 131
5.7 内容预告 131
第6 章 在JSON中进行搜索 132
6.1 为什么要在JSON中进行搜索 132
6.2 JSON搜索类库和工具 132
6.3 测试数据 134
6.4 设置单元测试环境 135
6.5 比较JSON搜索类库和工具 136
6.6 搜索工具评估——总结概要 154
6.7 本章回顾 155
6.8 内容预告 155
第7 章 JSON转换 156
7.1 JSON转换类型 156
7.2 选择JSON转换类库的标准 157
7.3 测试输入数据 157
7.4 将JSON转换为HTML 159
7.5 JSON格式转换 170
7.6 JSON与XML的相互转换 185
7.7 本章回顾 196
7.8 内容预告 196
第三部分 JSON的企业级应用
第8 章 JSON与超媒体 199
8.1 超媒体格式对比 200
8.2 结论 215
8.3 建议 216
8.4 实际中遇到的问题 217
8.5 在演讲者数据API 中用HAL 进行测试 217
8.6 在服务器端使用HAL 222
8.7 深入学习超媒体 223
8.8 本章回顾 223
8.9 内容预告 223
第9 章 JSON与MongoDB 224
9.1 关于BSON 224
9.2 安装MongoDB 225
9.3 MongoDB服务器及相关工具 225
9.4 MongoDB服务器 225
9.5 将JSON导入MongoDB 226
9.6 MongoDB命令行 228
9.7 从MongoDB中导出JSON文档 231
9.8 关于Schema 233
9.9 用MongoDB进行RESTful API测试 234
9.10 本章回顾 237
9.11 内容预告 238
第10 章 用Kafka实现JSON消息系统 239
10.1 Kafka的用例 239
10.2 Kafka中的概念和专有名词 240
10.3 Kafka生态系统——相关项目 241
10.4 配置Kafka环境 241
10.5 Kafka命令行界面 242
10.6 Kafka的类库 247
10.7 端到端示例——MyConference中的演讲者提案 247
10.8 本章回顾 262
扫一扫,京东购
扫一扫,当当购
扫一扫,亚马逊购
文末福利
本期送出 5 本《JSON实战》,工作中使用 JSON 的小伙伴来谈谈你的感受,没有使用过的小伙伴可以说说自己最近学习和工作中遇到过哪些技术难题。截止2018.8.20 17:00。
☟ 点击【阅读原文】查看前端相关图书
以上是关于听说JSON也能出本书?的主要内容,如果未能解决你的问题,请参考以下文章
运行个Hello Word也能出Bug?PythonJavaC++等16种语言中枪,最严重可导致文件丢失...