ToolConvoyToolConvoyv2.6
DEV

YAML to Properties — YAML 設定を Java .properties 形式に変換

YAML 設定を Java .properties 形式に変換します。ドット記法によるネスト、複数行の値、Unicode エスケープに対応。クライアントサイドで動作します。

● ローカル動作 · タブ内で生成ページ読み込み以降のツールによる通信:0件

YAML to Properties

Convert YAML configuration to Java .properties format. Flattens nested YAML into dot-notation properties. Works entirely in your browser.

Java の .properties ファイルは、今なお広く本番運用されている最も古い設定形式です。YAML、JSON、XML といった設定言語よりも古く —— java.util.Properties クラスは 1996 年の JDK 1.0 に含まれていました —— いまだに Spring Boot の application.properties、国際化のリソースバンドル、そして YAML への明示的な移行を行っていない多くの Java ベースのシステムにおけるデフォルト形式です。書式は厳格で、各行に key=value のペアが 1 つという構成で、代替として : を区切り文字に使える場合もあり、コメントは # または ! で始まります。このフラット構造のため、ネストした設定セクションを含む YAML ファイルはドット記法的索引のキーにフラット化する必要があり、配列はインデックス付きのキーに展開する必要があり、ISO 8859-1 外の Unicode 文字はすべて \uXXXX シーケンスにエスケープする必要があります。

YAML を properties に変換する主な理由は、Spring Boot アプリケーションの移行です。Spring Boot は 2014 年に application.yml で YAML サポートを追加しました。より簡潔な構文、ネイティブなネスト、anchor と alias のサポートにより、YAML は新プロジェクトの首选形式として急速に定着しました。しかし、多くのエンタープライズ向け Spring プロジェクトは 2014 年より前から存在しており、深く根付いたビルドパイプライン、properties ベースの設定サーバー、あるいは .properties のみを読み取るデプロイツールに依存しています。application.yml を application.properties に変換すれば、デプロイインフラを書き換えることなく移行を完遂できます。

最終的な引き渡し時の確認点:出力される .properties ファイルが Spring Boot プロジェクト向けであれば、YAML 特有の Spring 機能(profile ベースのドキュメント区切り、spring.config.import 参照、@activated@ Maven フィルタートークンなど)が properties 版でも正しく扱われているか確認してください。逆方向の変換(properties から YAML)が必要な場合は、Properties-to-JSON ツールで .properties を JSON に変換し、JSON-to-YAML ツールでチェーンを完結できます。Java プロジェクトが使用する他の設定形式については、INI-to-JSON ツールが INI ファイルをカバーし、TOML 系ツールが TOML をカバーしています。TOML は Spring Boot がサポートする 3 番目の設定形式です。

広告

使い方

  1. YAML 設定を貼り付ける

    YAML 設定ファイルを入力欄にドロップします。パーサーは YAML 1.2 を読み取り、ネストされたマッピングをドット記法的索引のキーに展開します。配列はインデックス記法で展開されます:`servers[0].host`。

  2. フラット化されたキーを確認する

    コンバーターは .properties ファイルに書き出される各キーと値のペアを表示します。ネストされた YAML は `parent.child.grandchild=value` になります。配列はインデックス付きのキーになります。Latin-1 外の Unicode 文字は `\uXXXX` シーケンスにエスケープされます。

  3. .properties ファイルをダウンロードする

    ISO 8859-1 エンコーディング(.properties の標準)または UTF-8(モダンな Java)を選択して .properties ファイルをダウンロードできます。出力にはタイムスタンプのコメントヘッダーが含まれ、元のキー順序が保持されます。

よくある質問

YAML 配列は .properties のフラット形式にどう変換されますか?

YAML 配列は 0 始まりのインデックス記法でフラット化されます。`servers: [host1, host2]` は `servers[0]=host1` と `servers[1]=host2` になります。オブジェクトの配列は `servers[0].host=host1` のようになります。このブラケットインデックスの規約は、Java の properties コンシューマーで最も一般的に使われています。

出力される .properties ファイルはどのエンコーディングを使いますか?

デフォルトは ISO 8859-1 で Unicode エスケープシーケンス(`\uXXXX`)を用います。これは Java Properties API で定義されている歴史的な .properties の標準です。UTF-8 で properties をネイティブに読み取るモダンな Spring Boot アプリケーションでは、UTF-8 モードに切り替えてください。

YAML の複数行文字列はどのように扱われますか?

YAML の folded scalar(`>`)と literal block scalar(`|`)は、.properties 出力では 1 行に結合され、改行は `\n` エスケープシーケンスで表されます。値が 80 文字を超える場合は、`\` の継続行文字が追加されます。

YAML のコメントは properties 出力に保持されますか?

YAML コメント(`# comment`)は、注釈対象の対応するキーと同じ位置に properties コメント(`# comment`)として保持されます。マッピングエントリ間にあるコメントは、対応する properties キーの前に配置されます。

制限事項

  • Spring profile の変換には非対応Spring 形式の `spring.profiles` キーや、複数 profile 設定用の YAML ドキュメント区切りを含む YAML ファイルは、単一のフラットファイルとして変換されます。profile の選択には、代わりに Spring Boot の `spring.profiles.active` プロパティを使用してください。
  • 深いネストはキー名が長くなる8 階層ネストされた YAML 構造は、`app.component.subcomponent.feature.setting.option=value` のようなキーを生成します。Java の `Properties` クラスやほとんどの Spring プロパティリゾルバはこれを受け付けますが、可読性は低下します。
  • 複数ドキュメントの YAML は結合されない`---` で区切られた複数ドキュメントの YAML ファイルは、結合されず個別の .properties ファイルに変換されます。変換ダイアログで変換するドキュメントを選択できます。

プラットフォーム別の注意点

macOS
Spring Boot は macOS 上で .properties ファイルをネイティブに読み込みます。YAML ベースのプロジェクトからレガシーな .properties ベースのコードベースへ移行する際に、YAML Spring 設定を .properties に変換する手段として、このブラウザツールが適しています。
Linux
CLI での同等手段:`yq eval -o props input.yaml` は単純なキーと値のマッピングを扱えます。このブラウザツールは、複数行の値処理、Unicode エスケープ、配列のインデックス記法にも対応しており、これらは yq の props 出力にはない機能です。
Web
YAML のパースと properties の生成はすべてクライアントサイドで実行されます。設定データがブラウザから外部に送信されることはありません —— 内部アプリケーション設定の変換にも安心して使えます。
広告
広告