JSON入力

Shell/Bash出力

JSONをShell/Bashとは?

JSONの設定ファイルがあって、bashスクリプトからその値を使いたい — どうすればいい?キーと値のペアをexport文に手動でコピーするのは面倒でミスが起きやすい。このツールはJSONを受け取り、直接sourceできるシェル変数宣言を生成します。Bashスクリプト、GitHub ActionsのようなCI/CDパイプライン、Dockerエントリポイントはすべて単一のenvファイルをsourceすることで恩恵を受けます。JSON仕様が入力フォーマットを定義し、POSIXシェル構文が出力を規定します。実行時の動的JSONパースにはjqが適切なツールです。

変換はブラウザで実行されます。設定で変数プレフィックスを設定してください。サーバーには送信されません。実行時に動的JSONをパースするにはjqを使用してください。

使い方

1

JSONを貼り付けまたはアップロード

JSONを貼り付けるかファイルをアップロードしてください。設定で変数プレフィックスを設定してください。

2

Shell出力を確認

右パネルに生成されたシェル変数代入が表示されます。スクリプト内で動的JSONをパースするにはjqを使用してください。

3

コピーまたはダウンロード

コピーまたはダウンロードでコードを取得してください。先にJSONをフォーマットするにはJSONフォーマッターを、検証にはJSONバリデーターを使用してください。

JSONをShellの例

JSONオブジェクトからシェル変数を生成する例です。

例:加入者レコード

JSON入力:

入力

生成されたShell出力:

出力

JSONをShellが役立つ場面

デプロイスクリプト、CI/CDパイプライン、自動化でJSONから設定値が必要な場合、シェル変数に変換すると出力をsourceしてスクリプト内で$VARを使用できます。APIレスポンスや動的JSONには実行時にjqを使用してください。WindowsにはJSONをPowerShellを使用してください。

よくある質問

この出力でBashとPOSIXシェルの違いは?

生成された出力はBashとPOSIX shの両方で動作するVAR="値"の代入を使用します。連想配列(declare -A)にはBash 4+が必要です。macOSはデフォルトでBash 3を搭載しています。最大の移植性にはjqを使用してください。

jqとこのツール、どちらを使うべき?

JSONが動的ソース(APIコール、パイプライン出力、実行時に変わるファイル)から来る場合はjqを使用してください。設定ファイルやフィクスチャなど静的JSONを一度変換してスクリプト内でsourceしたい場合はこのツールを使用してください。

GitHub Actionsで出力を直接使える?

はい。GitHub Actionsランナーはbashを使用します。出力を$GITHUB_ENVにパイプするか、runステップでsourceできます。ステップ出力からJSONをパースする場合は、fromJson()またはjqがより柔軟です。

ここにJSONを貼り付けても安全?

完全に安全です。すべてJavaScriptを使ってブラウザ内で実行されます — どのサーバーにも送信されません。ブラウザのネットワークタブを開いて確認できます。アカウント不要。

引用符や改行などの特殊文字はどうなる?

スペース、ダブルクォート、特殊文字を含む値はシングルクォートで囲まれるかエスケープされます。出力を確認し、対象のシェル環境でテストしてください。

関連ツール

jqJSON仕様MDN JSONを参照。