阅读(4326) (10)

IntelliJ IDEA使用之JSON

2018-11-21 10:33:18 更新

JSON

JSON格式通常用于存储数据和配置文件。IntelliJ IDEA可帮助您使用JSON文件 - 它会检查其语法和格式。在流行的配置文件类型中,IntelliJ IDEA提供了代码完成功能,这要归功于JSON Schema,它是一种描述此类文件结构和内容的特殊格式。您还可以使用自定义JSON模式在JSON文件中启用代码完成并验证它们。

启用JSON5

IntelliJ IDEA可识别所有JSON标准,包括JSON5。

使用JSON5的配置文件,默认扩展名为.json5

默认情况下,您只能在具有json5扩展名的文件中使用此新语法,但您可以将其扩展到所有json文件。

  1. 在设置/首选项对话框(Ctrl+Alt+S),单击文件类型下的编辑器。将打开“文件类型”页面。

  2. 在“识别的文件类型”列表中,选择“JSON5”。

  3. 在“已注册的模式”区域中,单击 加 并在打开的“添加通配符”对话框中输入:*.json。

使用JSON Schema Store中的模式

IntelliJ IDEA可以自动从JSON Schema Store下载和使用模式,该模式存储许多常用配置文件的模式文件。只要打开一个名称与其中一个可用模式相关联的文件(例如,composer.json),IntelliJ IDEA就会下载并使用此模式。应用的架构的名称显示在状态栏上。

从JSON Schema Store下载的JSON模式,应用模式的名称显示在状态栏中

如果配置文件具有自定义名称,请单击状态栏上的“无JSON模式”,然后从列表中选择所需的模式,或单击“新建模式映射”以打开“JSON模式映射”页面,并配置新的自定义模式。

当前文件没有JSON模式

默认情况下,启用从JSON架构存储自动下载架构。如果由于某种原因它被关闭,您可以随时再次启用它。

使用自定义JSON模式

除了来自JSON Schema Store的模式,IntelliJ IDEA还允许您配置和使用来自其他存储的自定义模式。您可以下载所需的模式并将其存储在项目根目录下,或指定资源的URL,以便IntelliJ IDEA可以自动下载模式。

注意:自定义架构必须符合JSON模式标准。

配置自定义JSON模式

  1. 在“设置/首选项”对话框(Ctrl+Alt+S)中,单击“语言和框架”下的“架构和DTD” ,然后单击“JSON架构映射”。将打开JSON Schema Mappings页面。

  2. 在中央窗格中,显示所有先前配置的自定义架构,单击工具栏上的 加

  3. 指定架构的名称以及架构符合的架构规范版本。在“架构文件或URL”字段中,指定先前下载的架构文件的位置,或键入所需架构可用的URL。

  4. 创建要针对此架构验证的文件或文件夹列表。该列表可能包含特定文件的名称,整个目录的名称和文件名模式。根据列表,IntelliJ IDEA在内部检测要验证的文件。每个文件仅验证一次。例如,如果具有指定名称的文件存储在列表中的目录中,或者其名称与模式匹配,则该文件仍仅验证一次。

    要将项添加到列表,请单击 添加映射并指定文件或文件夹的路径或键入文件模式。

提示:IntelliJ IDEA仅在当前项目中搜索具有指定名称的文件和文件夹,因此您无需指定文件和文件夹的完整路径

从远程源启用JSON模式的自动下载

  1. 在“设置/首选项”对话框(Ctrl+Alt+S)中,单击“语言和框架”下的“架构和DTD” ,然后单击“远程JSON架构”。

  2. 选择允许从远程源下载JSON模式。

    清除此复选框后,将禁用JSON架构周围的任何网络活动:

    • 用户定义的模式映射和$schema属性都不会导致下载任何内容。

    • 目录也未下载。

  3. 要使用JSON Schema Store,请选中Use schemastore.org JSON Schema catalog复选框。

    清除此复选框后,将禁用通过SchemaStore API的自动映射,并且不会使用catalog.json自动分配任何模式。

    您可以使用远程URL提供自己的映射。将下载映射的模式,JSON模式选择器将显示模式存储模式的列表。但是,JSON模式存储中的模式不会自动映射。

处理模式范围内的冲突

当文件,文件夹或模式属于两个或多个模式的范围时,会发生冲突。IntelliJ IDEA以两种模式分析范围:

  • 静态分析检测自定义模式范围内的冲突。如果检测到冲突,IntelliJ IDEA会在“模式详细信息”窗格中显示警告。要查看重叠范围,请单击“显示详细信息”链接。IntelliJ IDEA显示弹出消息,其中列出了冲突的范围和模式:
    有关设置/首选项对话框中冲突的架构范围的通知
  • 动态分析检测系统和自定义模式范围内的冲突。当您打开属于特定范围的文件时,将启动此类分析。如果检测到冲突,IntelliJ IDEA会在编辑器选项卡的顶部显示警告:
    关于编辑器中冲突的模式范围的通知
    单击该链接以打开JSON Schema Mappings页面并编辑冲突的自定义架构的范围。请注意,您无法编辑系统架构的范围。