RabbitJsonヘルプとリファレンス
← JSON テキスト変換ツール
クイックスタート

JSON パスとテンプレート式ガイド

JSON から配列を抽出し、各要素を整形したテキストに変換する方法を紹介します。以下の例を参考に RabbitJson で試してください。

1

配列を抽出

JSON を貼り付け、data.books などのパスを入力します。「抽出した配列」に結果が表示されます。ルートが配列なら $ を使います。

2

テキストに変換

${name} などのテンプレートを書きます。「変換結果」を確認してコピーしてください。サンプルデータはワークスペースの「サンプル」から読み込めます。

変換モード

リアルタイム

編集に合わせて配列とテキストを自動更新します。

手動

「配列を抽出」を実行し、テンプレートを入力して「テキストに変換」を選びます。テンプレートなしでも抽出できます。

入力を変更したとき

テンプレートを編集しても配列は保持されます。手動モードで JSON やパスを変更した場合は再抽出が必要です。古い結果は誤ってコピーしないよう消去されます。

大きな JSON の扱い

大きな入力は行番号なしのテキストで表示し、全データを処理します。出力は最大 200 行または 12,000 文字で、要素の途中で切れる場合があります。コピーやダウンロードには全結果が含まれます。

下書きは現在のタブに保存されます。保存できない場合はページを開いたままにするか、再読み込み前に別の場所へ保存してください。ブラウザーの保存機能が使える場合、言語を切り替えても下書きを保持します。

パス式で JSON 配列を抽出

フィールドにはドット、添字には角括弧を使います: data.books、items[0].tags。ドットや空白を含むキーは data["book.list"] のように指定します。ルート配列は $ で指定します。最終的な値は配列である必要があります。

配列を返すパスのみ表示します。上下キーで選択、Tab または Enter で挿入、Esc で閉じます。

例 1

トップレベルのプロパティ

トップレベルの配列を選択します。

JSON 入力

{
  "books": [
    {
      "name": "Book A",
      "price": 10
    },
    {
      "name": "Book B",
      "price": 20
    }
  ]
}

パス式

books

抽出した配列

[
  {
    "name": "Book A",
    "price": 10
  },
  {
    "name": "Book B",
    "price": 20
  }
]
例 2

ネストしたパス

ドットでオブジェクトの内部を参照します。

JSON 入力

{
  "data": {
    "books": [
      {
        "name": "Book A",
        "price": 10
      },
      {
        "name": "Book B",
        "price": 20
      }
    ]
  }
}

パス式

data.books

抽出した配列

[
  {
    "name": "Book A",
    "price": 10
  },
  {
    "name": "Book B",
    "price": 20
  }
]
例 3

配列のインデックス

インデックスは 0 から始まります。

JSON 入力

{
  "items": [
    {
      "id": 1,
      "tags": [
        "a",
        "b"
      ]
    },
    {
      "id": 2,
      "tags": [
        "c",
        "d"
      ]
    }
  ]
}

パス式

items[0].tags

抽出した配列

[
  "a",
  "b"
]

テンプレートで JSON 配列の要素をテキストに変換

フィールドや式を ${…} で囲みます。波括弧の中に入力すると候補が表示されます。

${…} の外側はそのままのテキストになります。各要素の結果は改行で結合されます。候補はネストしたフィールドに対応し、各要素での存在状況を表示します。

テンプレート式内で、上下キーでフィールドを選択、Tab または Enter で挿入、Esc で閉じます。

現在の要素とインデックス

${$item} は現在の要素、${$index} は 0 始まりの番号です。1 から数えるには ${$index + 1} を使います。フィールドは ${name} や ${$item.name} で参照できます。予約名と同じキーには ${$item["$item"]} や ${$item["$index"]} を使います。全体を JSON にするには ${JSON.stringify($item)} を使います。

例 1

JSON 配列を Markdown リストに変換

このルート配列にはパス式 $ を指定します。各要素を Markdown の箇条書きにして結果をコピーします。

抽出した配列

[
  {
    "name": "Alice"
  },
  {
    "name": "Bob"
  }
]

テンプレート

- ${name}

変換結果

- Alice
- Bob
例 2

文字列の配列

現在の文字列には $item、番号付けには $index + 1 を使います。

抽出した配列

[
  "admin",
  "editor"
]

テンプレート

${$index + 1}. Role: ${$item}

変換結果

1. Role: admin
2. Role: editor
例 3

数値の配列

現在の数値をそのまま計算に使います。

抽出した配列

[
  10,
  20,
  30
]

テンプレート

${$item} × 2 = ${$item * 2}

変換結果

10 × 2 = 20
20 × 2 = 40
30 × 2 = 60
例 4

オブジェクトの配列

$item またはフィールド名の省略記法で参照します。

抽出した配列

[
  {
    "name": "Alice"
  },
  {
    "name": "Bob"
  }
]

テンプレート

${$index + 1}. ${$item.name} / ${name}

変換結果

1. Alice / Alice
2. Bob / Bob
例 5

変数の置換

各配列要素のフィールドを挿入します。

抽出した配列

[
  {
    "name": "Book A",
    "author": "Author 1"
  },
  {
    "name": "Book B",
    "author": "Author 2"
  }
]

テンプレート

Book: ${name} by ${author}

変換結果

Book: Book A by Author 1
Book: Book B by Author 2
例 6

数値計算

式の中で値を計算します。

抽出した配列

[
  {
    "name": "Product A",
    "price": 100
  },
  {
    "name": "Product B",
    "price": 200
  }
]

テンプレート

${name}: $${price} (with tax: $${(price * 1.1).toFixed(2)})

変換結果

Product A: $100 (with tax: $110.00)
Product B: $200 (with tax: $220.00)
例 7

式の組み合わせ

フィールド、計算、テキストを組み合わせます。

抽出した配列

[
  {
    "item": "Item A",
    "price": 100,
    "qty": 2
  },
  {
    "item": "Item B",
    "price": 50,
    "qty": 3
  }
]

テンプレート

${item}: ${qty} x $${price} = $${price * qty}

変換結果

Item A: 2 x $100 = $200
Item B: 3 x $50 = $150
フィールド名と数値の書式

青は組み込み変数と一致するフィールド、紫は区切り、オレンジは演算子、青緑は数値です。赤い波線は欠落したフィールドを示します。小数点以下 2 桁には toFixed(2) を使います。