JSON
JSON 格式通常用于存储数据和配置文件。 GoLand 可协助您处理 JSON 文件 — 它会检查其语法和格式。 在常见类型的配置文件中,GoLand 根据 JSON Schema 验证代码并提供代码补全;该格式专用于描述此类文件的结构和内容。
GoLand 自带一组适用于大多数常用格式的 已注册 架构。 您也可以使用 JSON Schema Store 中的架构 或 自定义 JSON 架构。

启用 JSON5
GoLand 支持多种流行的 JSON 标准,包括 JSON5。 GoLand 默认将扩展名为 json5 的文件视为 JSON5 文件,并支持其语法。

将 JSON5 语法扩展到所有 JSON 文件
在 设置 对话框(Ctrl+Alt+S )中,转到 。
在 已识别的文件类型 列表中,选择 JSON5。
在 文件名模式 区域,点击
,然后在打开的 添加通配符 对话框中键入
*.json。
使用 JSON Schema Store 中的架构
GoLand 可自动从 JSON Schema Store 下载并使用架构,该站点托管了许多流行配置文件的架构文件。 当您打开的文件名称与某个可用架构相关联时(例如 tsconfig.json ),GoLand 会下载并为其使用该架构。 所使用的架构名称显示在状态栏中。

如果您的配置文件使用自定义名称,或您正在使用 临时文件 ,请在状态栏中点击 无 JSON 架构 ,然后从列表中选择所需的架构。 GoLand 会将当前文件与所选架构相关联,并将此架构映射添加至 JSON 架构映射 页面中的列表。
或者,点击 新建架构映射 打开 JSON 架构映射 页面并 配置新的架构关联。

默认情况下,启用了从 JSON Schema Store 自动下载架构。 如果该功能被关闭,您随时可以重新启用。
自动从 JSON Schema Store 下载架构
在 设置 对话框(Ctrl+Alt+S )中,转到 。
选中 允许从远程来源下载 JSON 架构 和 使用 schemastore.org JSON 架构目录 复选框。
GoLand 随附多个流行的架构。 尽管这些架构通常会定期自动更新,但仍可能存在过时情况。
使用最新版本的捆绑架构
在 设置 对话框(Ctrl+Alt+S )中,转到 。
选中 始终下载架构的最新版本 复选框。
使用自定义 JSON 架构
除了已捆绑注册的架构和 来自 JSON Schema Store 的架构 外,GoLand 还允许您创建自己的架构或使用来自其他存储的自定义架构。 您可以创建或下载所需的架构,存储在项目根目录下,也可以指定资源的 URL,GoLand 会自动下载该架构。
自定义架构必须符合 JSON 架构标准。 当前,GoLand 支持 2020-12 及更早版本的架构。

创建自定义 JSON 架构关联
在 设置 对话框(Ctrl+Alt+S )中,转到 。
或者,单击状态栏中的 无 JSON 架构 ,然后选择 新建架构映射。 在这种情况下,GoLand 会自动将文件包含到 关联文件、文件夹与模式列表 中。
在中央窗格中,显示之前配置的所有 Schema,点击工具栏上的
并指定映射名称。
在 架构文件或 URL 字段中,指定之前创建或下载的 Schema 文件的位置,或指定所需 Schema 可用的 URL。 Schema 文件名称或对应的 URL 地址显示在 架构文件或 URL 字段中。

指定 Schema 遵循的 Schema 规范版本。

创建一份文件或文件夹列表,以便使用此 Schema 验证。 GoLand 将根据列表在内部检测需要验证的文件。
该列表可以包含特定文件名称、整个目录名称及文件名模式。 使用以下规则来指定文件名模式:
role-*匹配所有文件名以role-开头的文件。role-*/**/*.yaml匹配所有名称包含role、/和/的 .yaml 文件。role-**.yaml匹配所有名称以role-开头的 .yaml 文件。
要将条目添加到列表,请点击
。

指定文件或文件夹的路径,或输入文件模式。 指定相对于项目根目录的路径。

启用从远程来源自动下载 JSON 架构
在 设置 对话框(Ctrl+Alt+S )中,转到 。
选择 允许从远程来源下载 JSON 架构。
取消选中该复选框时,所有与 JSON Schema 相关的网络活动(包括来自 JSON Schema Store 的 Schema)将被禁用。
禁用 JSON 架构
要为某个文件禁用 Schema,请点击状态栏中的 JSON 架构 小组件,然后从弹出列表中选择 忽略文件的 JSON 架构。

或者,选择 编辑架构映射 并 编辑 Schema 的作用域。 例如,您可以编辑相应的模式,或在文件名明确指定的情况下将文件从列表中移除。
最后,您可以选择 新建架构映射 并配置 Schema 关联, 如上所述。

要恢复当前文件的 Schema 关联,请点击状态栏中的 无 JSON 架构 ,然后从弹出列表中选择 停止忽略文件的 JSON 架构。

要为整个当前项目禁用自定义 Schema,请打开 设置 对话框(Ctrl+Alt+S ),转到 ,在中央窗格中选择 Schema 关联,然后点击工具栏上的
。
处理架构作用域之间的冲突
如果某个文件、文件夹或模式属于两个或多个 Schema 的作用域,GoLand 会检测到该冲突,并在编辑器和 JSON 架构映射 页的 设置 对话框中显示警告。
在编辑器中,当打开属于多个作用域的文件时,会显示警告。

在 设置 对话框的 JSON 架构映射 页上,当多个映射的作用域重叠时会显示警告。

在 JSON 架构中使用 HTML 描述
默认情况下,GoLand 在文档弹窗中显示 JSON Schema 定义文档时会转义 HTML 字符。
假设 Schema 使用了 description 属性:
然后, 快速文档 弹窗将如下所示:

要获得具有丰富 HTML 标记的美观文档说明,请将 HTML 描述存储在 x-intellij-html-description 扩展属性中,而不是 description:
此时 快速文档 弹窗显示如下:

配置语法高亮
您可以根据自己的偏好和习惯配置 JSON 感知型语法高亮。
在 设置 对话框(Ctrl+Alt+S )中,转到 。
选择配色方案,接受从默认设置继承的高亮设置,或按照 颜色与字体 中所述自定义设置。
技巧建议
为空的 struct 生成字段
如果您有一个空的 struct ,可以根据 JSON 生成所有必要的字段和标记。 为此,请使用 跳转到操作 搜索调用 从JSON 生成 Go 类型 对话框,并将 JSON 粘贴到文本字段中。 或者,您可以转到 ,并在弹窗中选择 JSON 中的类型。