Java .properties から JSON への変換
Java の .properties ファイルを Properties.load の規則に沿って JSON に変換します。コメント、= : スペース区切り、行継続、\uXXXX エスケープ、入れ子に対応。無料です。
すべてブラウザ内で実行されます。データがアップロードされることはありません。
関連ツール
すべて表示Properties から JSONとは?
Spring Boot の application.properties やメッセージバンドルなど、Java の .properties ファイルを貼り付けると、JSON が得られます。キーはフラットなまま("app.name")にも、ドットでオブジェクトに入れ子にすることもできます。
Properties から JSONの使い方
- .properties の入力欄 に .properties を貼り付けるか、サンプルを読み込む や ファイルを開く を使います。
- ドット区切りのキーをネストしたオブジェクトにする を切り替え、JSON の インデント を選びます。
- JSON の出力は入力に合わせて更新されます。コピー または ダウンロード を使います。
例
app.name = My App app.port: 8080
{
"app.name": "My App",
"app.port": "8080"
} Properties から JSONを使うべき場面
Java の設定や i18n バンドルを調べたり、移行したり、差分を取ったりするときに使います。${server.port} のような Spring のプレースホルダーや、プロファイル別のファイルは解決しません。
Properties から JSONの仕組み
パーサーは java.util.Properties.load に従います。# または ! で始まる行はコメントで、バックスラッシュが奇数個で終わる行は次の行に続き(先頭の空白は削除されます)、キーはエスケープされていない最初の =、:、空白で終わります。\t、\n、\r、\f、\uXXXX のエスケープはデコードされ、それ以外のエスケープされた文字はその文字自身を表します。重複したキーは後のものが優先されます。入れ子にするとき、既存の値と衝突するキー(例:a=1 と a.b=2)は何も失われないようフラットなまま残ります。Java と同様に、すべての値は文字列です。
一般的な使用例
- application.properties を JSON や YAML にしやすい構造に変換する
- Java のメッセージバンドルを JavaScript の i18n ライブラリ用の JSON にする
- 2 つの properties ファイルを JSON として比較する
- 古い ISO-8859-1 のバンドルの \u エスケープをデコードする
よくある質問
数値は変換されますか?
いいえ。Java の properties は常に文字列なので、値は「8080」のような文字列のままです。
行継続はどう扱われますか?
行末のバックスラッシュで次の行がつながり、その行の先頭のスペースは、Java と同じように削除されます。
入れ子にして衝突した場合はどうなりますか?
a と a.b の両方がある場合、a.b は a を上書きせず、フラットなキーのまま残ります。