JSON实战出版时间: 2018内容简介 本书来自于作者实际使用JSON的经验所得,主要内容包括JSON基础知识,对JSON数据建模,在Node.js、Ruby on Rails和Java中使用JSON,结构化JSON文档并设计测试API,搜索JSON文档的内容,将JSON文档转换成其他数据格式,将JSON作为企业级架构中的一部分来使用,等等。本书适合对Web和移动端应用、RESTful API以及消息系统进行设计或实现的架构师和开发人员阅读。目录前言 xv第 1 章 JSON概述 31.1 JSON是一项技术标准 31.2 示例 41.3 为什么使用JSON 51.4 JSON的核心概念 61.4.1 JSON数据类型 71.4.2 JSON值类型 91.4.3 JSON的版本 111.4.4 JSON中的注释 121.4.5 JSON文件及MIME类型 121.4.6 JSON编码规范 121.5 本书示例:MyConference 141.5.1 本书技术栈 141.5.2 本书架构风格:noBackend 141.5.3 用JSON Editor Online对JSON数据进行建模 151.5.4 用JSON Generator生成示例数据 161.5.5 创建并部署模拟API 161.6 本章回顾 191.7 内容预告 19第 2 章 在JavaScript中使用JSON 202.1 安装Node.js 202.2 用JSON.stringify()和JSON.parse()进行序列化 / 反序列化操作 212.2.1 用于stringify/parse操作的“JSON”对象 212.2.2 JavaScript中简单数据类型的JSON序列化操作 212.2.3 使用toJSON()进行对象的序列化操作 232.2.4 使用eval()进行JSON的反序列化操作 242.2.5 使用JSON.parse()进行JSON的反序列化操作 252.3 JavaScript对象和JSON 262.3.1 Node REPL 262.3.2 有关JavaScript对象的更多学习资料 282.4 用模拟API进行单元测试 282.4.1 单元测试风格——TDD和BDD 282.4.2 使用Mocha和Chai即可完成单元测试 292.4.3 设置单元测试环境 292.4.4 Unirest 292.4.5 测试数据 302.4.6 对演讲者数据进行单元测试 302.5 搭建小型Web应用程序 312.5.1 Yeoman 322.5.2 第 1 阶段:使用Yeoman生成Web应用程序 332.5.3 第 2 阶段:使用jQuery发起HTTP请求 362.5.4 第 3 阶段:在模板中使用模拟API所提供的演讲者数据 402.6 如何继续深入学习JavaScript 442.7 本章回顾 452.8 内容预告 45第 3 章 在Ruby on Rails中使用JSON 463.1 安装Ruby on Rails 463.2 Ruby中与JSON有关的gem包 463.3 用MultiJson进行序列化 / 反序列化操作 473.3.1 MultiJson对象 473.3.2 Ruby中简单数据类型的JSON序列化 / 反序列化操作 483.3.3 用MultiJson进行JSON反序列化操作 503.3.4 关于JSON和驼峰式命名 523.3.5 用ActiveSupport进行JSON序列化操作 523.3.6 用ActiveSupport进行JSON反序列化操作 533.4 用模拟API进行单元测试 543.4.1 使用Minitest即可完成单元测试 543.4.2 设置单元测试环境 553.4.3 测试数据 553.4.4 用Minitest测试API所提供的JSON 553.4.5 对演讲者数据的单元测试 553.4.6 有关Ruby和Minitest的更多学习资料 593.4.7 似乎少了点什么 593.5 用Ruby on Rails搭建小型Web API 593.5.1 选择JSON序列化工具 603.5.2 speakers-api-1——创建API以提供驼峰式命名风格的JSON 613.5.3 speakers-api-2——创建API以提供自定义风格的JSON 673.5.4 有关Rails和Rails API的更多学习资料 683.6 本章回顾 693.7 内容预告 69第 4 章 在Java中使用JSON 704.1 安装Java和Gradle 704.2 Gradle概览 704.3 使用JUnit即可完成单元测试 724.4 Java中的JSON类库 724.5 用Jackson进行JSON序列化 / 反序列化操作 734.5.1 对Java中的简单数据类型进行序列化 / 反序列化操作 734.5.2 对Java对象进行序列化 / 反序列化操作 754.6 用模拟API进行单元测试 794.6.1 测试数据 794.6.2 用JUnit对API提供的JSON进行测试 804.7 用Spring Boot搭建小型Web API 834.7.1 创建模型 844.7.2 创建控制器 854.7.3 注册应用程序 874.7.4 编写构建脚本 874.7.5 部署API 894.7.6 用Postman测试API 894.8 本章回顾 904.9 内容预告 90D二部分 JSON生态系统第 5 章 JSON Schema 935.1 JSON Schema概览 935.1.1 JSON Schema是什么 935.1.2 语法校验与语义校验 945.1.3 简单示例 945.1.4 Web上的JSON Schema资源 955.1.5 为什么使用JSON Schema 965.1.6 我在JSON Schema上的经历 975.1.7 JSON Schema标准的现状 975.1.8 JSON Schema与XML Schema 975.2 JSON Schema核心——基础知识与工具 975.2.1 JSON Schema工作流与工具 975.2.2 核心关键词 1005.2.3 基础类型 1005.2.4 数值 1035.2.5 数组 1045.2.6 枚举值 1065.2.7 对象 1075.2.8 模式属性 1085.2.9 正则表达式 1105.2.10 依赖属性 1115.2.11 内部引用 1135.2.12 外部引用 1145.2.13 选择校验规则 1175.3 如何使用JSON Schema设计和测试API 1215.3.1 应用场景 1215.3.2 JSON文档建模 1215.3.3 生成JSON Schema 1225.3.4 校验JSON文档 1255.3.5 生成示例数据 1265.3.6 用json-server部署模拟API 1295.3.7 关于用JSON Schema设计和测试API的一些思考 1305.4 使用JSON Schema类库进行校验 1305.5 如何继续深入学习JSON Schema 1315.6 本章回顾 1315.7 内容预告 131第 6 章 在JSON中进行搜索 1326.1 为什么要在JSON中进行搜索 1326.2 JSON搜索类库和工具 1326.2.1 其他you秀工具 1336.2.2 选择工具的标准 1336.3 测试数据 1346.4 设置单元测试环境 1356.5 比较JSON搜索类库和工具 1366.5.1 JSONPath 1366.5.2 JSON Pointer 1416.5.3 jq 1456.6 搜索工具评估——总结概要 1546.7 本章回顾 1556.8 内容预告 155第 7 章 JSON转换 1567.1 JSON转换类型 1567.2 选择JSON转换类库的标准 1577.3 测试输入数据 1577.4 将JSON转换为HTML 1597.4.1 目标HTML文档 1597.4.2 Mustache 1607.4.3 Handlebars 1657.4.4 转换工具评估——总结概要 1707.5 JSON格式转换 1707.5.1 存在的问题 1707.5.2 JSON格式转换类库 1707.5.3 其他you秀工具 1717.5.4 目标JSON输出 1717.5.5 JSON Patch 1727.5.6 JSON-T 1777.5.7 Mustache 1807.5.8 Handlebars 1827.5.9 转换工具评估——总结概要 1847.6 JSON与XML的相互转换 1857.6.1 传统转换工具 1857.6.2 传统转换工具所面对的问题 1937.6.3 XML-JSON相互转换——总结概要 1937.6.4 JSON-XML相互转换——单元测试 1947.7 本章回顾 1967.8 内容预告 196第三部分 JSON的企业级应用第 8 章 JSON与超媒体 1998.1 超媒体格式对比 2008.1.1 定义关键词 2018.1.2 关于超媒体的个人看法 2018.1.3 Siren 2028.1.4 JSON-LD 2038.1.5 Collection+JSON 2078.1.6 json:api 2088.1.7 HAL 2118.2 结论 2158.3 建议 2168.4 实际中遇到的问题 2178.5 在演讲者数据API中用HAL进行测试 2178.5.1 测试数据 2178.5.2 HAL单元测试 2198.6 在服务器端使用HAL 2228.7 深入学习超媒体 2238.8 本章回顾 2238.9 内容预告 223第 9 章 JSON与MongoDB 2249.1 关于BSON 2249.2 安装MongoDB 2259.3 MongoDB服务器及相关工具 2259.4 MongoDB服务器 2259.5 将JSON导入MongoDB 2269.6 MongoDB命令行 2289.7 从MongoDB中导出JSON文档 2319.8 关于Schema 2339.9 用MongoDB进行RESTful API测试 2349.9.1 测试输入数据 2359.9.2 对MongoDB进行RESTful封装 2359.10 本章回顾 2379.11 内容预告 238第 10 章 用Kafka实现JSON消息系统 23910.1 Kafka的用例 23910.2 Kafka中的概念和专有名词 24010.3 Kafka生态系统——相关项目 24110.4 配置Kafka环境 24110.5 Kafka命令行界面 24210.5.1 如何用命令行界面发布JSON消息 24210.5.2 启动ZooKeeper 24310.5.3 启动Kafka 24310.5.4 创建主题 24310.5.5 列举主题 24410.5.6 启动消费者程序 24410.5.7 发布JSON消息 24510.5.8 使用JSON消息 24510.5.9 清理并关闭Kafka 24610.6 Kafka的类库 24710.7 端到端示例——MyConference中的演讲者提案 24710.7.1 测试数据 24710.7.2 架构中的组件 24910.7.3 配置Kafka环境 25010.7.4 配置模拟的电子邮件服务器及客户端——MailCatcher 25110.7.5 配置Node.js项目环境 25110.7.6 演讲提案生成程序(用于发送演讲提案) 25210.7.7 提案审核程序(消息的消费者和生产者) 25210.7.8 演讲者提醒程序(消息的消费者) 25710.7.9 用MailCatcher实现审核结果的电子邮件提醒功能 26010.8 本章回顾 262附录 A 安装指南 263附录 B JSON社区 277关于作者 278关于封面 278 上一篇: Kotlin程序员面试算法宝典 下一篇: 微信公众平台商业应用搭建、支付开发与运维实践