本文へスキップ

JavaScriptからJSONへのオンライン変換器 — Numio

JavaScript のオブジェクトリテラルを、2 スペースインデントの厳密な JSON に変換します。クォートなしのキー、シングルクォート、コメント、末尾カンマ、16 進数、先頭が小数点の小数も受け付けて正規化します。

.js ファイルにある設定やフィクスチャのオブジェクトを、JSON ファイル、API リクエストボディ、Postman コレクションにコピーする。

JSON と JSON5 に対応。コメント・単一引用符・末尾のカンマを使えます。関数や JavaScript の式は実行しません。

JS Object

JSON

こんなときに使えます

  • .js ファイルにある設定やフィクスチャのオブジェクトを、JSON ファイル、API リクエストボディ、Postman コレクションにコピーする。
  • ブラウザの DevTools やドキュメントから貼り付けたオブジェクトを、厳密な JSON パーサーを通る形に整える。

使い方

  1. オブジェクトリテラル(データのみ。変数宣言や末尾のセミコロンは含めない)を左側のエディターに貼り付けるか、ファイル読み込みボタンで UTF-8 のファイルを開きます。
  2. 入力すると右側に JSON が表示されます。"invalid character" などのエラーが出たら、表示された行と列を確認します。
  3. 変換後の値(16 進数は 10 進数に、クォートはダブルクォートに)を確認して、結果をコピーします。

JavaScript オブジェクトリテラル

{
  // Mongoose-style field definition
  title: {
    type: 'String',
    required: true,
  },
  year: { type: 'Number', max: 0x7E6 },
  tags: ['draft', 'review',],
  ratio: .75,
  'content-type': "text/plain",
}

JSON

{
  "title": {
    "type": "String",
    "required": true
  },
  "year": {
    "type": "Number",
    "max": 2022
  },
  "tags": [
    "draft",
    "review"
  ],
  "ratio": 0.75,
  "content-type": "text/plain"
}

仕様と制限

入力はブラウザ内の JSON5 パーサーで解析され、コードは実行されません。式、関数、new Date()、テンプレートリテラル、undefined、変数参照は不正な文字として拒否されます。

NaN と Infinity は JSON で表せないため、エラーになります。

コメントや元のキーの書式は保持されません。出力は常にダブルクォートと 2 スペースインデントです。

2^53 を超える整数は精度が落ちます(12345678901234567890 は 12345678901234567000 になります)。大きな ID は文字列にしてください。

FAQ

const config = { ... }; を貼り付けられますか?

いいえ。受け付けるのは値だけです。宣言と末尾のセミコロンを削除してください。残っているとパーサーがその位置で不正な文字を報告します。

重複したキーはどうなりますか?

最後に出現したものが採用されます。{a: 1, a: 2} は警告なしで {"a": 2} になるため、手作業でマージしたオブジェクトは確認してください。

ルートが配列や単一の値でも変換できますか?

はい。JSON5 の値なら何でも変換できます。たとえば [1, 2,] は要素 2 つの JSON 配列に、'hi' は "hi" になります。

仕様を確認する