JSON早已变成RESTful接口设计的事实标准,并在互联网技术数据传输行业日渐受青睐,是构建雅致、高效率手机应用程序的得力工具。 这书系统软件展现怎么使用JSON专用工具和信息/文本文档设计方案来构建公司级手机应用程序与服务项目,既包含JSON基本知识,又包含很多实际操作实践活动与应用实例,是全方位把握JSON强劲作用的优选。 ·了解JSON基本知识并学习培训怎样对JSON统计数据开展模型 ·学习培训怎样在Node.js、Ruby on Rails及其Java中应用JSON ·应用JSON Schema搭建JSON文本文档设计制作并检测API ·应用JSON搜索器来检索JSON文本文档的內容 ·应用JSON转换软件将JSON文档转换成别的数据格式 ·较为HAL和jsonapi等JSON超媒体格式 ·应用MongoDB来储存和解决JSON文本文档 ·应用Apache Kafka在服务项目间互换JSON信息
这书来源于于创作者实际上应用JSON的经历个人所得,主题思想包含JSON基本知识,对JSON数据建模,在Node.js、Ruby on Rails和Java中应用JSON,结构型JSON文本文档并设计方案检测API,检索JSON文本文档的內容,将JSON文档转换成别的数据格式,将JSON做为公司级构架中的一部分来应用,这些。 这书合适对Web和手机端运用、RESTful API及其信息系统软件开展设计方案或保持的系统架构师和开发者阅读文章。
目录
- 前言 xv
- 第 1 章 JSON概述 3
- 1.1 JSON是一项技术标准 3
- 1.2 示例 4
- 1.3 为什么使用JSON 5
- 1.4 JSON的核心概念 6
- 1.4.1 JSON数据类型 7
- 1.4.2 JSON值类型 9
- 1.4.3 JSON的版本 11
- 1.4.4 JSON中的注释 12
- 1.4.5 JSON文件及MIME类型 12
- 1.4.6 JSON编码规范 12
- 1.5 本书示例:MyConference 14
- 1.5.1 本书技术栈 14
- 1.5.2 本书架构风格:noBackend 14
- 1.5.3 用JSON Editor Online对JSON数据进行建模 15
- 1.5.4 用JSON Generator生成示例数据 16
- 1.5.5 创建并部署模拟API 16
- 1.6 本章回顾 19
- 1.7 内容预告 19
- 第 2 章 在JavaScript中使用JSON 20
- 2.1 安装Node.js 20
- 2.2 用JSON.stringify()和JSON.parse()进行序列化 / 反序列化操作 21
- 2.2.1 用于stringify/parse操作的“JSON”对象 21
- 2.2.2 JavaScript中简单数据类型的JSON序列化操作 21
- 2.2.3 使用toJSON()进行对象的序列化操作 23
- 2.2.4 使用eval()进行JSON的反序列化操作 24
- 2.2.5 使用JSON.parse()进行JSON的反序列化操作 25
- 2.3 JavaScript对象和JSON 26
- 2.3.1 Node REPL 26
- 2.3.2 有关JavaScript对象的更多学习资料 28
- 2.4 用模拟API进行单元测试 28
- 2.4.1 单元测试风格——TDD和BDD 28
- 2.4.2 使用Mocha和Chai即可完成单元测试 29
- 2.4.3 设置单元测试环境 29
- 2.4.4 Unirest 29
- 2.4.5 测试数据 30
- 2.4.6 对演讲者数据进行单元测试 30
- 2.5 搭建小型Web应用程序 31
- 2.5.1 Yeoman 32
- 2.5.2 第 1 阶段:使用Yeoman生成Web应用程序 33
- 2.5.3 第 2 阶段:使用jQuery发起HTTP请求 36
- 2.5.4 第 3 阶段:在模板中使用模拟API所提供的演讲者数据 40
- 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.3.1 MultiJson对象 47
- 3.3.2 Ruby中简单数据类型的JSON序列化 / 反序列化操作 48
- 3.3.3 用MultiJson进行JSON反序列化操作 50
- 3.3.4 关于JSON和驼峰式命名 52
- 3.3.5 用ActiveSupport进行JSON序列化操作 52
- 3.3.6 用ActiveSupport进行JSON反序列化操作 53
- 3.4 用模拟API进行单元测试 54
- 3.4.1 使用Minitest即可完成单元测试 54
- 3.4.2 设置单元测试环境 55
- 3.4.3 测试数据 55
- 3.4.4 用Minitest测试API所提供的JSON 55
- 3.4.5 对演讲者数据的单元测试 55
- 3.4.6 有关Ruby和Minitest的更多学习资料 59
- 3.4.7 似乎少了点什么 59
- 3.5 用Ruby on Rails搭建小型Web API 59
- 3.5.1 选择JSON序列化工具 60
- 3.5.2 speakers-api-1——创建API以提供驼峰式命名风格的JSON 61
- 3.5.3 speakers-api-2——创建API以提供自定义风格的JSON 67
- 3.5.4 有关Rails和Rails API的更多学习资料 68
- 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.5.1 对Java中的简单数据类型进行序列化 / 反序列化操作 73
- 4.5.2 对Java对象进行序列化 / 反序列化操作 75
- 4.6 用模拟API进行单元测试 79
- 4.6.1 测试数据 79
- 4.6.2 用JUnit对API提供的JSON进行测试 80
- 4.7 用Spring Boot搭建小型Web API 83
- 4.7.1 创建模型 84
- 4.7.2 创建控制器 85
- 4.7.3 注册应用程序 87
- 4.7.4 编写构建脚本 87
- 4.7.5 部署API 89
- 4.7.6 用Postman测试API 89
- 4.8 本章回顾 90
- 4.9 内容预告 90
- D二部分 JSON生态系统
- 第 5 章 JSON Schema 93
- 5.1 JSON Schema概览 93
- 5.1.1 JSON Schema是什么 93
- 5.1.2 语法校验与语义校验 94
- 5.1.3 简单示例 94
- 5.1.4 Web上的JSON Schema资源 95
- 5.1.5 为什么使用JSON Schema 96
- 5.1.6 我在JSON Schema上的经历 97
- 5.1.7 JSON Schema标准的现状 97
- 5.1.8 JSON Schema与XML Schema 97
- 5.2 JSON Schema核心——基础知识与工具 97
- 5.2.1 JSON Schema工作流与工具 97
- 5.2.2 核心关键词 100
- 5.2.3 基础类型 100
- 5.2.4 数值 103
- 5.2.5 数组 104
- 5.2.6 枚举值 106
- 5.2.7 对象 107
- 5.2.8 模式属性 108
- 5.2.9 正则表达式 110
- 5.2.10 依赖属性 111
- 5.2.11 内部引用 113
- 5.2.12 外部引用 114
- 5.2.13 选择校验规则 117
- 5.3 如何使用JSON Schema设计和测试API 121
- 5.3.1 应用场景 121
- 5.3.2 JSON文档建模 121
- 5.3.3 生成JSON Schema 122
- 5.3.4 校验JSON文档 125
- 5.3.5 生成示例数据 126
- 5.3.6 用json-server部署模拟API 129
- 5.3.7 关于用JSON Schema设计和测试API的一些思考 130
- 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.2.1 其他you秀工具 133
- 6.2.2 选择工具的标准 133
- 6.3 测试数据 134
- 6.4 设置单元测试环境 135
- 6.5 比较JSON搜索类库和工具 136
- 6.5.1 JSONPath 136
- 6.5.2 JSON Pointer 141
- 6.5.3 jq 145
- 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.4.1 目标HTML文档 159
- 7.4.2 Mustache 160
- 7.4.3 Handlebars 165
- 7.4.4 转换工具评估——总结概要 170
- 7.5 JSON格式转换 170
- 7.5.1 存在的问题 170
- 7.5.2 JSON格式转换类库 170
- 7.5.3 其他you秀工具 171
- 7.5.4 目标JSON输出 171
- 7.5.5 JSON Patch 172
- 7.5.6 JSON-T 177
- 7.5.7 Mustache 180
- 7.5.8 Handlebars 182
- 7.5.9 转换工具评估——总结概要 184
- 7.6 JSON与XML的相互转换 185
- 7.6.1 传统转换工具 185
- 7.6.2 传统转换工具所面对的问题 193
- 7.6.3 XML-JSON相互转换——总结概要 193
- 7.6.4 JSON-XML相互转换——单元测试 194
- 7.7 本章回顾 196
- 7.8 内容预告 196
- 第三部分 JSON的企业级应用
- 第 8 章 JSON与超媒体 199
- 8.1 超媒体格式对比 200
- 8.1.1 定义关键词 201
- 8.1.2 关于超媒体的个人看法 201
- 8.1.3 Siren 202
- 8.1.4 JSON-LD 203
- 8.1.5 Collection JSON 207
- 8.1.6 json:api 208
- 8.1.7 HAL 211
- 8.2 结论 215
- 8.3 建议 216
- 8.4 实际中遇到的问题 217
- 8.5 在演讲者数据API中用HAL进行测试 217
- 8.5.1 测试数据 217
- 8.5.2 HAL单元测试 219
- 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.9.1 测试输入数据 235
- 9.9.2 对MongoDB进行RESTful封装 235
- 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.5.1 如何用命令行界面发布JSON消息 242
- 10.5.2 启动ZooKeeper 243
- 10.5.3 启动Kafka 243
- 10.5.4 创建主题 243
- 10.5.5 列举主题 244
- 10.5.6 启动消费者程序 244
- 10.5.7 发布JSON消息 245
- 10.5.8 使用JSON消息 245
- 10.5.9 清理并关闭Kafka 246
- 10.6 Kafka的类库 247
- 10.7 端到端示例——MyConference中的演讲者提案 247
- 10.7.1 测试数据 247
- 10.7.2 架构中的组件 249
- 10.7.3 配置Kafka环境 250
- 10.7.4 配置模拟的电子邮件服务器及客户端——MailCatcher 251
- 10.7.5 配置Node.js项目环境 251
- 10.7.6 演讲提案生成程序(用于发送演讲提案) 252
- 10.7.7 提案审核程序(消息的消费者和生产者) 252
- 10.7.8 演讲者提醒程序(消息的消费者) 257
- 10.7.9 用MailCatcher实现审核结果的电子邮件提醒功能 260
- 10.8 本章回顾 262
- 附录 A 安装指南 263
- 附录 B JSON社区 277
- 关于作者 278
- 关于封面 278