IntelliJ IDEA 2020.1ヘルプ

JSON

JSON(英語)形式は、データの保存と構成ファイルに一般的に使用されます。IntelliJ IDEAは、JSONファイルの操作を支援します。構文とフォーマットをチェックします。一般的なタイプの構成ファイルでは、IntelliJ IDEAはコード補完を提供します。JSON スキーマ(英語)は、そのようなファイルの構造と内容を記述するための特別な形式です。カスタムJSONスキーマを使用して、JSONファイルでコード補完を有効にして検証することもできます。

JSON5を有効にする

IntelliJ IDEAは、JSON5(英語)を含む多くの最も一般的なJSON標準を認識しています。IntelliJ IDEAはデフォルトで json5 拡張子を持つファイルをJSON5ファイルとして扱い、この新しい構文をサポートしています。

Configuration file that uses JSON5 with the default extension .json5

JSON5構文をすべてのJSONファイルに拡張する

  1. 設定/環境設定ダイアログ Ctrl+Alt+Sで、エディター | ファイル・タイプに移動します。

  2. 認識されているファイルの種類リストで、JSON5を選択します。

  3. 登録パターン領域で、Add をクリックし、開くワイルドカードの追加ダイアログに *.json と入力します。

JSON Schema Storeのスキーマを使用する

IntelliJ IDEAは、一般的な設定ファイルのスキーマファイルをホストするJSONスキーマストア(英語)からスキーマを自動的にダウンロードして使用することができます。使用可能なスキーマ( tslint.jsonなど)の1つに名前が関連付けられているファイルを開くと、IntelliJ IDEAはこのスキーマをダウンロードして使用します。適用されたスキーマの名前がステータスバーに表示されます。

JSON schema downloaded from JSON Schema Store, the name of the applied schema is shown in the Status bar

設定ファイルにカスタム名がある場合は、ステータスバーのJSONスキーマがありませんをクリックし、リストから必要なスキーマを選択するか、新しいスキーママッピング をクリックしてJSONスキーママッピングページを開き、新しいカスタムスキーマを設定します

No JSON schema for the current file

デフォルトでは、JSONスキーマストアからのスキーマの自動ダウンロードが有効になっています。何らかの理由で電源を切ってしまった場合は、いつでも再び有効にすることができます。

JSONスキーマストアからのスキーマの自動ダウンロードを有効にする

  1. 設定/環境設定ダイアログ Ctrl+Alt+Sで、言語とフレームワーク | スキーマおよび DTD | リモート JSON スキーマに移動します。

  2. リモートソースからの JSON スキーマのダウンロードを許可するschemastore.org JSON スキーマ・カタログを使用するチェックボックスを選択します。

IntelliJ IDEAには、多くの一般的なスキーマがバンドルされています。これらのスキーマは定期的に自動的に更新されますが、古くなっている可能性があります。

バンドルされているスキーマの最新バージョンを使用する

  1. 設定/環境設定ダイアログ Ctrl+Alt+Sで、言語とフレームワーク | スキーマおよび DTD | リモート JSON スキーマに移動します。

  2. 常に最新バージョンのスキーマをダウンロードするチェックボックスを選択します。

カスタムJSONスキーマの使用

JSON Schema Storeのスキーマに加えて、IntelliJ IDEAでは他のストレージのカスタムスキーマを設定して使用することができます。IntelliJ IDEAが自動的にスキーマをダウンロードできるように、必要なスキーマをダウンロードしてプロジェクトルートに保存するか、リソースのURLを指定することができます。

カスタムJSONスキーマを構成する

  1. 設定/環境設定ダイアログ Ctrl+Alt+Sで、言語とフレームワーク | スキーマおよび DTD | JSON スキーマ・マッピングに移動します。

  2. 中央ペインには、以前に設定したすべてのカスタムスキーマが表示されます。ツールバーの Add をクリックします。

  3. スキーマの名前と、スキーマが準拠するスキーマ仕様バージョン(英語)を指定します。スキーマファイルまたはURLフィールドには、以前にダウンロードしたスキーマファイルの場所を指定するか、必要なスキーマが利用できるURLを入力します。

  4. このスキーマに対して検証するファイルまたはフォルダーのリストを作成します。リストには、特定のファイルの名前、ディレクトリ全体の名前、およびファイル名のパターンが含まれている場合があります。このリストに基づいて、IntelliJ IDEAは内部的に検証されるファイルを検出します。

    リストに項目を追加するには、Add mapping をクリックし、ファイルまたはフォルダーへのパスを指定するか、ファイルパターンを入力します。

リモートソースからのJSONスキーマの自動ダウンロードを有効にする

  1. 設定/環境設定ダイアログ Ctrl+Alt+Sで、言語とフレームワーク | スキーマおよび DTD | リモート JSON スキーマに移動します。

  2. リモートソースからの JSON スキーマのダウンロードを許可するを選択します。

    チェックボックスをオフにすると、JSONスキーマストアのスキーマを含む、JSONスキーマに関するネットワークアクティビティが無効になります。

スキーマのスコープ間の競合の処理

ファイル、フォルダー、パターンが2つ以上のスキーマのスコープに属している場合に競合が発生します。IntelliJ IDEAは2つのモードでスコープを分析します。

  • 静的解析はカスタムスキーマのスコープの競合を検出します。競合が検出されると、IntelliJ IDEAはスキーマの詳細ペインに警告を表示します。重なっているスコープを表示するには、詳細の表示リンクをクリックしてください。IntelliJ IDEAは、矛盾するスコープとスキーマがリストされているメッセージ付きのポップアップを表示します。

    Notification about conflicting schema scopes in Settings/Preferences dialog

  • 動的解析は、システムスキーマとカスタムスキーマの両方のスコープで競合を検出します。このタイプの分析は、特定のスコープに属するファイルを開くと開始されます。競合が検出された場合、IntelliJ IDEAはエディタータブの上部に警告を表示します。

    Notification about conflicting schema scopes in the editor
    リンクをクリックしてJSON スキーマ・マッピングページを開き、競合しているカスタムスキーマの範囲を編集します。システムスキーマの範囲は編集できません。

JSONスキーマでのHTML記述の使用

ドキュメントポップアップでJSONスキーマ定義のドキュメントを表示すると、IntelliJ IDEAはデフォルトでHTML文字をエスケープします。豊富なHTMLマークアップを持つ見栄えの良い文書を得るために、descriptionの代わりに x-intellij-html-description 拡張プロパティにHTML記述を保管してください。

{ "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" } } }
No formatting in documentation for JSON schema definitions with description property
{ "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" } } }
HTML descriptions in documentation for JSON schema definitions with x-intellij-html-description property

構文強調表示の構成

好みや習慣に応じてJSON対応の構文強調表示を設定できます。

  1. 設定/環境設定ダイアログ Ctrl+Alt+Sで、エディター | カラー・スキームの切り替え | JSONに移動します。

  2. 配色を選択するか、デフォルトから継承された強調表示設定を受け入れるか、または色とフォントの設定の説明に従ってカスタマイズします。

最終更新日: 2020年6月2日