設定ファイル変換

1 つの設定形式を貼り付けると、入力と同時に残り 2 つの形式が得られます。

使い方

  1. 設定内容を貼り付けてください(YAML、JSON、Java の .properties)。形式は自動判定され、入力するそばから下に残り 2 つの形式が表示されます。押すボタンはありません。
  2. 判定が違う場合は入力形式を自分で選んでください。インデントをスペース 2 つか 4 つにするかを選び、Spring 風のフラットなキーを保ちたいときは「ドット区切りのキーを展開」をオフにします。
  3. 各結果は個別にコピーまたはダウンロードできます。ファイル名は config.yaml、config.json、config.properties です。

例

入力(YAML)

server:
  port: 8080
  name: order-service
debug: true

JSON と Properties

{
  "server": {
    "port": 8080,
    "name": "order-service"
  },
  "debug": true
}

Properties
----------
server.port = 8080
server.name = order-service
debug = true

既定のルールのみの例です。入力は YAML と判定されるため、8080 は数値のまま、true は真偽値のままです。Properties には型がないため、同じ値が文字列の 8080 と true として出力されます。入力が .properties の場合は最初から最後まで文字列として扱われます。

ルール・制限・既知の問題

  • 対応するのは YAML、JSON、Java の .properties の 3 形式だけです。TOML、INI の [section] ヘッダー、XML、CSV には対応していません。
  • YAML は設定用のサブセットとして対応しています。ブロックのマッピング、シーケンス、フローの {…} / […]、引用符付きスカラー、| / > のブロックスカラーです。アンカー(&)、エイリアス(*)、!タグ、<< マージキー、? 複合キーは推測せずエラーとして報告します。
  • 変換するのは最初の YAML 文書だけです。後続の --- は無視し、その旨を報告します。
  • コメントは引き継ぎません。3 つの形式ではコメントの置き場所が異なるため、間違った位置に残ったコメントは、コメントがないより有害です。
  • Properties には型がありません。すべての値が文字列なので、port = 8080 は JSON で "8080" になり、8080 にはなりません。数値、真偽値、null が残るのは入力が YAML か JSON のときだけです。
  • 非 ASCII のテキストは \uXXXX にエスケープせず、UTF-8 のまま出力します。Java の Properties.store() は ISO-8859-1 で書き出すため、Java プロジェクトに貼り付ける場合はファイルを UTF-8 で保存してください。
  • 安全な範囲を超える整数(12345678901234567890 など)は、数値に丸めず、入力したとおりの桁の文字列として保ちます。
  • キーの順序は入力に従います。並べ替えのオプションはありません。
  • 最上位の配列や単独の値は properties として出力できません。そのパネルだけがエラーを報告し、ほかのパネルは変換を続けます。
  • ファイルのアップロード、URL パラメータ、履歴はありません。すべてブラウザ内で動作し、何もアップロード・保存されません。
  • 改行を含む文字列は、YAML で | のブロックスカラーではなく "a\nb" として出力します。
  • 制限: 100 万文字、ネスト 64 階層です。いずれかを超えると結果を切り捨てずにエラーを返します。20 万文字を超えると、入力が止まって約 0.6 秒後に結果が更新されます。出力の改行は LF で末尾に改行は付きません。

設定が正しい形式になったあとによく使われるツールです。