谈到 JSON,你的第一反应是什么?听说 JSON 也能出本书?费解!

没错,如果你 Google 搜索 JSON,你会发现 JSON 的官网,http://json.org/。官网上明确说明 JSON 是一种数据格式。不过基于这种格式它可以衍生出不少相关操作和工具:序列化/反序列化、搜索、转换、Schema、超媒体等。

所以,不懂的小伙伴还真要认真看看。图灵之前有出版过一本 JSON 入门书——《JSON必知必会》,这本书虽然只有 128 页,但是却包含了绝大部分你要知道的 JSON 知识,深受读者喜爱。

为了让大家在入门后能将所学用于实战,我们今天就为大家介绍一本新书《JSON实战》,这本是 Web 开发架构师指南,也是 JSON 实战宝典。

听说JSON也能出本书?

JSON at Work: Practical Data Integration for the Web

作者:汤姆•马尔斯

译者:邵钏

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 消息。

相关文章