参考

本文档中使用的约定

特定于语言的说明

当来自其他动态语言时,JavaScript 和 JSON 中基本类型的名称可能会造成混淆。我白天是 Python 程序员,因此我已经在这里记录了事物名称与 Python 中的不同之处,以及其他特定于 Python 的有关使用 JSON 和 JSON Schema 的建议。我绝不是想在这本书中创造对 Python 的偏见,但这正是我所知道的,所以从这里开始。从长远来看,我希望这本书对所有类型的程序员都很有用,因此如果您有兴趣将 Python 参考翻译成 Algol-68 或您可能知道的任何其他语言,欢迎您提出拉取请求!

特定于语言的部分以每个语言的选项卡显示。选择一种语言后,该选择将在您从页面到页面继续阅读时被记住。

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

特定于语言的信息:
Python
Ruby
C
Objective-C
Swift
在 Python 中,可以使用标准库中的 json 模块读取 JSON。

特定于草案的说明

JSON Schema 标准已经经历了多次修订或 "草案"。当前版本是草案 2020-12,但一些较旧的草案仍然被广泛使用。

本文档旨在鼓励使用草案 2020-12,并优先考虑最新的约定和功能,但在与早期草案不同的情况下,会突出显示这些差异。如果您只希望针对草案 2020-12,则可以安全地忽略这些部分。

草案 2020-12 中的新增功能
特定于语言的信息:
草案 2019-09
这里会提到与旧草案相关的任何内容。

示例

本书中有很多示例,它们都遵循相同的格式。每个示例的开头都是一个简短的 JSON schema,说明了特定的原则,然后是与该 schema 有效或无效的简短 JSON 片段。有效的示例以绿色显示,带有一个对勾。无效的示例以红色显示,带有一个叉号。通常,它们之间会有注释来解释某件事为什么有效或无效。

这些示例在构建本书时会自动测试,因此希望它们不仅有用,而且正确!

这些示例在构建本书时会自动测试,因此希望它们不仅有用,而且正确!

例如,这里有一个代码段说明了如何使用 number 类型

schema
{ "type": "number" }
数据
42
符合 schema
数据
-1
符合 schema

简单的浮点数

数据
5.0
符合 schema

指数表示法也适用

数据
2.99792458e8
符合 schema

字符串形式的数字被拒绝

数据
"42"
不符合 schema

需要帮助?

您觉得这些文档有帮助吗?

帮助我们改进文档!

在 JSON Schema,我们重视文档贡献,就像其他任何类型的贡献一样!

仍然需要帮助?

学习 JSON Schema 往往令人困惑,但别担心,我们在这里提供帮助!。