本书中使用的约定
特定语言注释
当来自另一种动态语言时,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