跳到主要内容

本书中使用的约定

特定语言注释

当来自另一种动态语言时,JavaScript 和 JSON 中基本类型的名称可能会令人困惑。我是一名 Python 程序员,所以当事物的名称与它们在 Python 中的名称不同时,我会在此处注明,以及任何其他特定于 Python 的使用 JSON 和 JSON Schema 的建议。我绝不试图对这本书产生 Python 偏见,但这是我所知道的,所以我从那里开始。从长远来看,我希望这本书对各行各业的程序员都有用。

例如,这里有一个特定于语言的部分,其中包含有关在几种不同语言中使用 JSON 的建议:

在 Python 中,可以使用标准库中的 json 模块读取 JSON。

在 Ruby 中,可以使用 json gem 读取 JSON。对于 C,你可能要考虑使用Jansson来读写 JSON。

特定 Draft 注释

JSON Schema 标准已经过多次修订或“ Draft”。当前版本是 Draft 7,但 Draft 4 仍然被广泛使用。

编写该文本是为了鼓励使用 Draft 7 并优先考虑最新的约定和功能,但在与早期版本不同的地方,这些差异在特殊标注中突出显示。如果您只想针对 Draft 7,您可以放心地忽略这些部分。

例子

本书中有许多示例,它们都遵循相同的格式。每个示例的开头是一个简短的 JSON 模式,说明了一个特定的原则,然后是针对该模式有效或无效的简短 JSON 片段。有效示例标记 ok。无效的例子标记 not ok。通常会有注释来解释为什么有效或无效。

笔记:每当构建本书时,这些示例都会自动进行测试,以保证它们不仅有用,而且正确!

例如,这是一个说明如何使用number 类型的片段:

{ "type": "number" }

42 // ok
-1 // ok
5.0 //简单的浮点数 ok
2.99792458e8 //指数计数法 ok
"42" // 作为字符串的数字 not ok