JavaScript → JSON コンバーター
JavaScript のオブジェクトリテラルや配列を貼り付ければ、有効な JSON が返ってきます。
このツールの役割
設定ファイル、シードスクリプト、デバッガーからコピーしてきた JavaScript のオブジェクトリテラルを、ちゃんとした JSON にしたい——そんな場面で使います。問題は、JS ではクォートなしキー、シングルクォート、末尾カンマ、undefined、コメント、new Date(...) が書けてしまうこと。どれも JSON では許されません。全部ここに貼って Convert を押せば、JSON.parse を赤線なしで通る JSON が返ってきます。
JSON.stringify と同じルールで動きます。キーはダブルクォートで囲み、シングルクォートはダブルに変換、末尾カンマは削除、コメントは除去、undefined の値は消え(ネイティブの stringify と同じ挙動)、NaN と Infinity は null に、Date オブジェクトは RFC 8259 に従って ISO-8601 文字列になります。ECMAScript の数値フォーマット規則も尊重するので、1e3 は数値のまま、0x1F は 31 に展開されます。
Node から貼り付けるようなもの——module.exports = {...}、ES の export default {...}、ただの const config = {...} 代入——も対応します。計算プロパティ、ショートハンドプロパティ({ name })、スプレッド({ ...defaults, env: "prod" })はすべて解決後の形に展開されます。ネストしたオブジェクトや配列はそのまま通ります。
使い方
5 行でも丸ごと config モジュールでも、手順は 3 つだけです。
JavaScript を貼り付け(サンプルを試すのもあり)
左のエディターにコードを貼ります。object literal、オブジェクトの配列、export 文、const 宣言——どれでもパーサーが処理します。Load Sample を押せば現実的な入力例が見られます。
const、module.exports、export default を外す必要はありません。コメントも残したままで OK——出力では削除されます。JSON の型マッピングをおさらいしたければ MDN の JSON リファレンスをどうぞ。
Convert を押す
緑の Convert ボタンをクリック。ツールが JS をパースしてリテラル値を評価し、JSON.stringify(obj, null, 2) と同じ形でシリアライズします。
JSON をコピー
右のパネルに、どの言語でもきれいにパースできる整形済み JSON が表示されます。リクエストボディ、設定ファイル、Jest のスナップショットにそのままコピーしてください。
実際に役立つ場面
API リクエストの組み立て
React や Express のファイルにあるオブジェクトリテラルを、Postman や curl 用の JSON ボディにしたい。貼って変換、終わり。
設定を JSON に移行
<code>config.js</code> から JSON ベースの設定ストアに移行中? export を貼り付けて、有効な JSON を取り出してそのまま投入します。
テストフィクスチャとモック
Jest テストで使っているインラインオブジェクトを、MSW、Playwright、モックサーバー向けのスタンドアロン JSON フィクスチャに変換します。
ログやデバッガーの出力
Node REPL や Chrome DevTools が表示する値(JSON ではなく JS のオブジェクト構文)をコピーして、下流のツールがちゃんとパースできる形に変換します。
よくある質問
クォートなしキーや末尾カンマは通りますか?
はい。識別子のキーは出力でクォートが付き、シングルクォートはダブルに、末尾カンマは落とされます——ECMAScript が許すけれど JSON が許さない部分を吸収します。
undefined、NaN、Infinity、関数はどうなりますか?
JSON.stringify と同じルールです。undefined と関数値はオブジェクトから省かれ、NaN と Infinity は null になり、Symbol は捨てられます。詳しくは MDN の JSON.stringify ドキュメントへ。
Date はシリアライズされますか?
はい。new Date(...) の値は ISO-8601 文字列("2026-03-14T10:30:00.000Z")になります。Date.prototype.toJSON() が生成するのと同じ形式です。
ES モジュールや CommonJS の export も貼っていい?
はい——export default { ... }、export const x = { ... }、module.exports = { ... } はすべて認識します。ツールはエクスポートされた値を取り出して変換します。
スプレッド構文や計算プロパティは?
両方とも最終的なオブジェクトの形に解決されます。{ ...defaults, env: "prod" } はマージされ、キーがリテラルなら { [name]: value } は { "actualName": value } に展開されます。
コードは保存されますか?
コードは変換のためにバックエンドへ送られ、保存もログも残しません。機微なものを貼る場合は、一度目を通してからどうぞ。
合わせて使えるツール
JavaScript → JSON はパズルの一ピースです。相性のいいツールはこちら: