TOML、INI、ENV、Properties、JSON形式を相互変換
3つの簡単なステップで設定ファイル形式を変換:
フレームワーク間の移行時にアプリケーション設定を形式変換。例えば、レガシーなINI設定を最新のTOMLに変換したり、JSON設定をDockerコンテナ用の環境固有のENVファイルに変換できます。
異なるデプロイ環境でENVファイルとJSON間で設定データを変換。JSON形式の開発設定を本番環境用の.envファイルに変換したり、集中管理されたJSON設定からJavaアプリケーション用のPropertiesファイルを生成できます。
古いINIやPropertiesファイルをTOMLやJSON形式に変換してレガシーシステムの設定を近代化。設定ロジックを保持しながら、より優れた構造とコメントをサポートする新しく表現力豊かな形式を採用できます。
CI/CDパイプラインで形式間変換による設定管理を自動化。JSONテンプレートから環境固有の設定を生成したり、TOML設定をコンテナ化されたデプロイ用のENVファイルに変換できます。
異なる形式を使用するマイクロサービス間で設定を管理。共有JSON設定スキーマをNode.jsサービス用のENV、Javaサービス用のProperties、Rustサービス用のTOMLなど、サービス固有の形式に変換できます。
プラットフォーム固有の形式間で設定を変換。WindowsのINIファイルをLinuxフレンドリーなENVファイルに変換したり、クロスプラットフォームのJSON設定を異なるOS上で動作するJavaアプリケーション用のプラットフォーム固有のPropertiesファイルに変換できます。
各設定形式には独自の特性があり、異なるユースケースに適しています。これらの違いを理解することで、プロジェクトに適した形式を選択できます。
JSONは階層構造を持つ軽量データ形式で、ネストされたオブジェクトと配列をサポートします。Web APIや最新のアプリケーションで広く使用され、厳密な構文と優れたツールサポートを提供します。ただし、コメントをサポートせず、文字列をクォートで囲む必要があるため、設定ファイルとしては人間にとって扱いにくい場合があります。最適な用途:ネストされたデータを持つ構造化設定、APIレスポンス、言語間の互換性。
TOMLは読み書きしやすいように設計された最新の設定形式です。セクション(テーブル)、ネスト構造、コメントをサポートし、アプリケーション設定に最適です。TOMLは明確なキーバリュー構文を使用し、JSONより冗長でなく、INIより構造化されています。Rust、Python、最新のツールエコシステムで人気があります。最適な用途:アプリケーション設定、パッケージマニフェスト(Cargo.tomlなど)、人間が編集可能な設定。
INIはセクションとキーバリューペアで構成されるシンプルなレガシー設定形式です。Windowsアプリケーションや古いシステムで広く使用され、読みやすいですが標準化が不足しています。ネスト構造や複雑なデータ型をサポートせず、フラットな設定に限定されます。コメントはセミコロンまたはハッシュ記号を使用します。最適な用途:シンプルな設定、レガシーWindowsアプリケーション、フラットなキーバリュー設定。
ENVファイルは環境変数をシンプルなKEY=VALUE形式で1行に1つずつ保存します。Docker、Node.js、12ファクターアプリで一般的に使用され、環境固有の設定に最適です。ネスト構造、セクション、複雑なデータ型をサポートせず、フラットな設定に最適です。コメントはハッシュ記号(#)を使用します。最適な用途:環境変数、Docker設定、デプロイ固有の設定、シークレット管理。
PropertiesファイルはJavaのネイティブ設定形式で、シンプルなkey=valueまたはkey:value構文を使用します。国際文字のUnicodeエスケープをサポートし、バックスラッシュで複数行にまたがることができます。構造はフラットですが、ドット記法(例:database.host)による階層的な命名をサポートします。コメントはハッシュ(#)または感嘆符(!)を使用します。最適な用途:Javaアプリケーション、国際化(i18n)リソースバンドル、JVMベースのシステム。
用途によります:ネスト構造とコメントを持つ最新のアプリケーション設定にはTOMLを使用。環境変数とDockerデプロイにはENVを使用。API設定と言語間データ交換にはJSONを使用。シンプルでレガシー互換の設定にはINIを使用。Javaアプリケーションとi18nリソースバンドルにはPropertiesを使用。エコシステム、ツールサポート、チームの習熟度を考慮してください。
TOMLセクション(テーブル)はJSONではネストされたオブジェクトに、ENV/Propertiesではドット記法のキーに、INI形式ではセクションに変換されます。例えば、TOMLの[database.mysql]はJSONでは{"database": {"mysql": {...}}}に、ENV/Propertiesではdatabase.mysql.*キーに、INIでは[database.mysql]セクションになります。
INI形式にはいくつかの制限があります:標準化された仕様がない、セクション内のフラットなキーバリューペアに限定、配列やネストされたオブジェクトのネイティブサポートなし、データ型の一貫性のない処理(すべて文字列)、実装によって異なるコメント構文。シンプルでフラットな設定に最適です。
次の規則に従ってください:変数名にはUPPERCASE_WITH_UNDERSCORES形式を使用(例:DATABASE_HOST)。スペースと特殊文字を避ける。階層を反映する説明的な名前を使用(DATABASE_MYSQL_HOST)。スペースや特殊文字を含まない限り値をクォートしない。共通のプレフィックスで関連する変数をグループ化。
PropertiesファイルはデフォルトでISO-8859-1(Latin-1)エンコーディングを使用します。ラテン文字以外の文字はUnicodeエスケープシーケンス(\uXXXX)でエスケープする必要があります。最新のJavaアプリケーションはUTF-8 Propertiesファイルを読み取れますが、最大限の互換性のためにはnative2asciiツールを使用するか、このコンバーターに自動的にエンコーディングを処理させてください。
はい、ネストされたJSON構造はENVまたはProperties形式への変換時に自動的にドット記法にフラット化されます。例えば、{"database": {"host": "localhost"}}はENVではDATABASE_HOST=localhostになります。配列はインデックス付きキーに変換されます:{"servers": ["a", "b"]}はSERVERS_0=aとSERVERS_1=bになります。
TOML(# コメント)、INI(# または ; コメント)、ENV(# コメント)、Properties(# または ! コメント)がすべてコメントをサポートします。JSONは標準仕様ではコメントをサポートしません。コメントが必要な場合は、設定ファイルにTOMLまたはJSON5(JSON拡張)の使用を検討してください。
絶対に安全です。すべての変換はJavaScriptを使用してブラウザ内で完全に実行されます。APIキーやパスワードなどの機密値を含む設定データは、サーバーにアップロードされることも、ネットワーク経由で送信されることもありません。本番環境のシークレットを扱う場合は、オフライン環境でこのツールを使用することも検討してください。
画像データをBase64エンコード
URLを安全な形式にエンコード