JSON
最后修改时间:2023 年 10 月 5 日JSON格式通常用于存储数据和配置文件。IntelliJ IDEA 帮助您处理 JSON 文件 - 它检查它们的语法和格式。在流行的配置文件类型中,IntelliJ IDEA 借助JSON Schema提供了代码补全功能,JSON Schema 是一种用于描述此类文件的结构和内容的特殊格式。您还可以使用自定义 JSON 架构在 JSON 文件中启用代码完成并验证它们。
启用 JSON5
IntelliJ IDEA 认可许多最流行的 JSON 标准,包括JSON5。默认情况下,IntelliJ IDEA 将具有json5扩展名的文件视为 JSON5 文件,并在其中支持这种新语法。
将 JSON5 语法扩展到所有 JSON 文件
在“设置”对话框 ( ) 中,转到编辑器 | 文件类型。CtrlAlt0S
在“识别的文件类型”列表中,选择“JSON5”。
在“文件名模式”区域中,单击并
*.json
在打开的“添加通配符”对话框中键入。
使用 JSON 架构存储中的架构
IntelliJ IDEA 可以自动从JSON 架构存储下载和使用架构,该存储托管许多流行配置文件的架构文件。一旦您打开名称与可用架构之一(例如tslint.json)关联的文件,IntelliJ IDEA 就会下载并使用该架构。已应用架构的名称显示在状态栏上。
如果您的配置文件具有自定义名称,或者您正在使用临时文件,请单击状态栏上的“无 JSON 架构”,然后从列表中选择所需的架构,或者单击“新建架构映射”以打开“JSON 架构映射”页面并配置新的架构。自定义架构。
提示
JSON 架构存储中的架构也可以应用于 YAML 文件。
默认情况下,启用从 JSON 架构存储自动下载架构。如果已关闭,您可以随时重新启用它。
启用从 JSON 架构存储自动下载架构
在“设置”对话框 ( ) 中,转至语言和框架 | 模式和 DTD | 远程 JSON 模式。CtrlAlt0S
选中允许从远程源下载 JSON 架构和使用 schemastore.org JSON 架构目录复选框。
IntelliJ IDEA 捆绑了许多流行的模式。尽管这些模式会定期自动更新,但它们仍然可能会过时。
使用最新版本的捆绑架构
在“设置”对话框 ( ) 中,转至语言和框架 | 模式和 DTD | 远程 JSON 模式。CtrlAlt0S
选中始终下载最新版本的架构复选框。
使用自定义 JSON 架构
除了JSON Schema Store 中的模式之外,IntelliJ IDEA 还允许您配置和使用其他存储中的自定义模式。您可以下载所需的架构并将其存储在项目根目录下或指定资源的 URL,以便 IntelliJ IDEA 可以自动下载架构。
提示
自定义架构必须符合 JSON 架构标准。目前,IntelliJ IDEA 支持 schema Draft-07及更早版本。
配置自定义 JSON 架构
在“设置”对话框 ( ) 中,转至语言和框架 | 模式和 DTD | JSON 模式映射。CtrlAlt0S
在显示所有先前配置的自定义架构的中央窗格中,单击工具栏上的 。
指定架构的名称以及您的架构所遵循的架构规范版本。在架构文件或 URL字段中,指定先前下载的架构文件的位置或键入可获取所需架构的 URL。
提示
如果指定 URL,请确保选中“远程JSON 架构”页面上的“允许从远程源下载 JSON 架构”复选框。
创建要根据此架构进行验证的文件或文件夹列表。IntelliJ IDEA 根据该列表在内部检测要验证的文件。
该列表可以包含特定文件的名称、整个目录的名称和文件名模式。使用以下规则指定文件名模式:
role-*
匹配名称以 . 开头的所有文件role-
。role-*/**/*.yaml
匹配名称包含、和的所有.yaml文件。role
/
/
role-**.yaml
匹配名称以 .yaml 开头的所有.yamlrole-
文件。
要将项目添加到列表中,请单击并指定文件或文件夹的路径,或者键入文件模式。
提示
IntelliJ IDEA 仅在当前项目内搜索指定名称的文件和文件夹,因此您无需指定文件和文件夹的完整路径。
启用从远程源自动下载 JSON 模式
在“设置”对话框 ( ) 中,转至语言和框架 | 模式和 DTD | 远程 JSON 模式。CtrlAlt0S
选择允许从远程源下载 JSON 架构。
清除该复选框后,围绕 JSON 模式的任何网络活动(包括来自 JSON 模式存储的模式)都会被禁用。
处理模式范围之间的冲突
当文件、文件夹或模式属于两个或多个架构的范围时,就会出现冲突。IntelliJ IDEA 以两种模式分析范围:
静态分析检测自定义模式范围中的冲突。如果检测到冲突,IntelliJ IDEA 会在架构详细信息窗格中显示警告。要查看重叠范围,请单击显示详细信息链接。IntelliJ IDEA 显示一个弹出窗口,其中包含一条消息,其中列出了冲突的范围和架构:
动态分析检测系统和自定义架构范围内的冲突。当您打开属于特定范围的文件时,就会开始这种类型的分析。如果检测到冲突,IntelliJ IDEA 会在编辑器选项卡顶部显示警告:
单击该链接可打开JSON 架构映射页面并编辑冲突的自定义架构的范围。请注意,您无法编辑系统架构的范围。
在 JSON 模式中使用 HTML 描述
默认情况下,IntelliJ IDEA 在文档弹出窗口中显示 JSON 架构定义的文档时会转义 HTML 字符。要获得具有丰富 HTML 标记的美观文档,请将 HTML 描述存储在x-intellij-html-description
扩展属性中,而不是description
.
{
"id": "http://some.site.somewhere/entry-schema#",
"$schema": "http://json-schema-org/draft-06/schema#",
"type": "object",
"required": [ "options" ],
"properties": {
"options": {
"type": "array",
"description": "Interesting details: Fresh New Awesome",
"minItems": 1,
"items": { "type": "string" },
"uniqueItems": true,
},
"readonly": { "type": "boolean" }
}
}
{
"id": "http://some.site.somewhere/entry-schema#",
"$schema": "http://json-schema-org/draft-06/schema#",
"type": "object",
"required": [ "options" ],
"properties": {
"options": {
"type": "array",
"x-intellij-html-description": "<p><b>Interesting</b> <i>details:</i></p>\n
<ul><li>Fresh</li><li>New</li><li>Awesome</li></ul>\n
<div style='background-color: #fff77c'>Choose schema with HTML description =)</div>",
"minItems": 1,
"items": { "type": "string" },
"uniqueItems": true,
},
"readonly": { "type": "boolean" }
}
}
配置语法高亮
您可以根据您的喜好和习惯配置 JSON 感知语法突出显示。
在“设置”对话框 ( ) 中,转到编辑器 | 配色方案| JSON。CtrlAlt0S
选择颜色方案,接受从默认值继承的突出显示设置,或按照颜色和字体中所述自定义它们。
感谢您的反馈意见!