内容简介
第一部分 JSON概述与平台
第1章 JSON概述
1.1 JSON是一项技术标准
1.2 示例
1.3 为什么使用JSON
1.4 JSON的核心概念
1.4.1 JSON数据类型
1.4.2 JSON值类型
1.4.3 JSON的版本
1.4.4 JSON中的注释
1.4.5 JSON文件及MIME类型
1.4.6 JSON编码规范
1.5 本书示例:MyConference
1.5.1 本书技术栈
1.5.2 本书架构风格:noBackend
1.5.3 用JSON Editor Online对JSON数据进行建模
1.5.4 用JSON Generator生成示例数据
1.5.5 创建并部署模拟API
1.6 本章回顾
1.7 内容预告
第2章 在JavaScript中使用JSON
2.1 安装Node.js
2.2 用JSON.stringify()和JSON.parse()进行序列化/反序列化操作
2.2.1 用于stringify/parse操作的“JSON”对象
2.2.2 JavaScript中简单数据类型的JSON序列化操作
2.2.3 使用toJSON()进行对象的序列化操作
2.2.4 使用eval()进行JSON的反序列化操作
2.2.5 使用JSON.parse()进行JSON的反序列化操作
2.3 JavaScript对象和JSON
2.3.1 Node REPL
2.3.2 有关JavaScript对象的更多学习资料
2.4 用模拟API进行单元测试
2.4.1 单元测试风格——TDD和BDD
2.4.2 使用Mocha和Chai即可完成单元测试
2.4.3 设置单元测试环境
2.4.4 Unirest
2.4.5 测试数据
2.4.6 对演讲者数据进行单元测试
2.5 搭建小型Web应用程序
2.5.1 Yeoman
2.5.2 第1阶段:使用Yeoman生成Web应用程序
2.5.3 第2阶段:使用jQuery发起HTTP请求
2.5.4 第3阶段:在模板中使用模拟API所提供的演讲者数据
2.6 如何继续深入学习JavaScript
2.7 本章回顾
2.8 内容预告
第3章 在Ruby on Rails中使用JSON
3.1 安装Ruby on Rails
3.2 Ruby中与JSON有关的gem包
3.3 用MultiJson进行序列化/反序列化操作
3.3.1 MultiJson对象
3.3.2 Ruby中简单数据类型的JSON序列化/反序列化操作
3.3.3 用MultiJson进行JSON反序列化操作
3.3.4 关于JSON和驼峰式命名
3.3.5 用ActiveSupport进行JSON序列化操作
3.3.6 用ActiveSupport进行JSON反序列化操作
3.4 用模拟API进行单元测试
3.4.1 使用Minitest即可完成单元测试
3.4.2 设置单元测试环境
3.4.3 测试数据
3.4.4 用Minitest测试API所提供的JSON
3.4.5 对演讲者数据的单元测试
3.4.6 有关Ruby和Minitest的更多学习资料
3.4.7 似乎少了点什么
3.5 用Ruby on Rails搭建小型Web API
3.5.1 选择JSON序列化工具
3.5.2 speakers-api-1——创建API以提供驼峰式命名风格的JSON
3.5.3 speakers-api-2——创建API以提供自定义风格的JSON
3.5.4 有关Rails和Rails API的更多学习资料
3.6 本章回顾
3.7 内容预告
第4章 在Java中使用JSON
4.1 安装Java和Gradle
4.2 Gradle概览
4.3 使用JUnit即可完成单元测试
4.4 Java中的JSON类库
4.5 用Jackson进行JSON序列化/反序列化操作
4.5.1 对Java中的简单数据类型进行序列化/反序列化操作
4.5.2 对Java对象进行序列化/反序列化操作
4.6 用模拟API进行单元测试
4.6.1 测试数据
4.6.2 用JUnit对API提供的JSON进行测试
4.7 用Spring Boot搭建小型Web API
4.7.1 创建模型
4.7.2 创建控制器
4.7.3 注册应用程序
4.7.4 编写构建脚本
4.7.5 部署API
4.7.6 用Postman 测试API
4.8 本章回顾
4.9 内容预告
第二部分 JSON生态系统
第5章 JSON Schema
5.1 JSON Schema概览
5.1.1 JSON Schema是什么
5.1.2 语法校验与语义校验
5.1.3 简单示例
5.1.4 Web上的 JSON Schema资源
5.1.5 为什么使用JSON Schema
5.1.6 我在 JSON Schema上的经历
5.1.7 JSON Schema标准的现状
5.1.8 JSON Schema与XML Schema
5.2 JSON Schema核心——基础知识与工具
5.2.1 JSON Schema工作流与工具
5.2.2 核心关键词
5.2.3 基础类型
5.2.4 数值
5.2.5 数组
5.2.6 枚举值
5.2.7 对象
5.2.8 模式属性
5.2.9 正则表达式
5.2.10 依赖属性
5.2.11 内部引用
5.2.12 外部引用
5.2.13 选择校验规则
5.3 如何使用JSON Schema设计和测试API
5.3.1 应用场景
5.3.2 JSON文档建模
5.3.3 生成JSON Schema
5.3.4 校验JSON文档
5.3.5 生成示例数据
5.3.6 用json-server部署模拟API
5.3.7 关于用JSON Schema设计和测试API的一些思考
5.4 使用JSON Schema类库进行校验
5.5 如何继续深入学习JSON Schema
5.6 本章回顾
5.7 内容预告
第6章 在JSON中进行搜索
6.1 为什么要在JSON中进行搜索
6.2 JSON搜索类库和工具
6.2.1 其他优秀工具
6.2.2 选择工具的标准
6.3 测试数据
6.4 设置单元测试环境
6.5 比较JSON搜索类库和工具
6.5.1 JSONPath
6.5.2 JSON Pointer
6.5.3 jq
6.6 搜索工具评估——总结概要
6.7 本章回顾
6.8 内容预告
第7章 JSON转换
7.1 JSON转换类型
7.2 选择JSON转换类库的标准
7.3 测试输入数据
7.4 将JSON转换为HTML
7.4.1 目标HTML文档
7.4.2 Mustache
7.4.3 Handlebars
7.4.4 转换工具评估——总结概要
7.5 JSON格式转换
7.5.1 存在的问题
7.5.2 JSON格式转换类库
7.5.3 其他优秀工具
7.5.4 目标JSON输出
7.5.5 JSON Patch
7.5.6 JSON-T
7.5.7 Mustache
7.5.8 Handlebars
7.5.9 转换工具评估——总结概要
7.6 JSON与XML的相互转换
7.6.1 传统转换工具
7.6.2 传统转换工具所面对的问题
7.6.3 XML-JSON相互转换——总结概要
7.6.4 JSON-XML相互转换——单元测试
7.7 本章回顾
7.8 内容预告
第三部分 JSON的企业级应用
第8章 JSON与超媒体
8.1 超媒体格式对比
8.1.1 定义关键词
8.1.2 关于超媒体的个人看法
8.1.3 Siren
8.1.4 JSON-LD
8.1.5 Collection+JSON
8.1.6 json:api
8.1.7 HAL
8.2 结论
8.3 建议
8.4 实际中遇到的问题
8.5 在演讲者数据API中用HAL进行测试
8.5.1 测试数据
8.5.2 HAL单元测试
8.6 在服务器端使用HAL
8.7 深入学习超媒体
8.8 本章回顾
8.9 内容预告
第9章 JSON与MongoDB
9.1 关于BSON
9.2 安装MongoDB
9.3 MongoDB服务器及相关工具
9.4 MongoDB服务器
9.5 将JSON导入MongoDB
9.6 MongoDB命令行
9.7 从MongoDB中导出JSON文档
9.8 关于Schema
9.9 用MongoDB进行RESTful API测试
9.9.1 测试输入数据
9.9.2 对MongoDB进行RESTful封装
9.10 本章回顾
9.11 内容预告
第10章 用Kafka实现JSON消息系统
10.1 Kafka的用例
10.2 Kafka中的概念和专有名词
10.3 Kafka生态系统——相关项目
10.4 配置Kafka环境
10.5 Kafka命令行界面
10.5.1 如何用命令行界面发布JSON消息
10.5.2 启动ZooKeeper
10.5.3 启动Kafka
10.5.4 创建主题
10.5.5 列举主题
10.5.6 启动消费者程序
10.5.7 发布JSON消息
10.5.8 使用JSON消息
10.5.9 清理并关闭Kafka
10.6 Kafka的类库
10.7 端到端示例——MyConference中的演讲者提案
10.7.1 测试数据
10.7.2 架构中的组件
10.7.3 配置Kafka环境
10.7.4 配置模拟的电子邮件服务器及客户端——MailCatcher
10.7.5 配置Node.js项目环境
10.7.6 演讲提案生成程序(用于发送演讲提案)
10.7.7 提案审核程序(消息的消费者和生产者)
10.7.8 演讲者提醒程序(消息的消费者)
10.7.9 用MailCatcher实现审核结果的电子邮件提醒功能
10.8 本章回顾
附录A 安装指南
附录B JSON社区
关于作者
关于封面