コンテンツにスキップ

JSON 置換 (JSON Replace)

ドット記法パスを使用して JSON 内の値を置換します。

説明 (Description)

JSON Replace ノードを使用すると、ドット記法を用いて指定したパスにある JSON データを変更・置換できます。元データの意図しない変更を防ぐためにディープコピー(Deep Copy)を作成し、指定したパスが存在しない場合は自動的に新しいパスを生成します。

パラメータ一覧 (Parameters)

入力パラメータ

パラメータ名 型 説明 デフォルト値
json json, str, dict 変更対象の JSON データ {}
path str 置換対象のドット記法パス(例: 'user.name', 'items[0].title') ""
replacement_value json, str, dict 指定したパスに設定する新しい値 ""

出力パラメータ

パラメータ名 型 説明
output json 置換後の値が反映された JSON データ

主な機能 (Features)

  • ディープコピー保護: 元データを改変しないようにディープコピーを作成
  • パス自動生成: 指定したパスが存在しない場合、自動的に中間構造を生成
  • 配列サポート: items[0].name のような配列インデックス指定に対応
  • リアルタイム更新: いずれかの入力パラメータが変更されると自動更新
  • 安全な操作: 無効なパスや不正なデータ型に対しても安全に処理

パス構文 (Path Syntax)

基本的なオブジェクト置換

# ネストされたオブジェクトプロパティの置換
path = "user.name"  # ユーザー名を置換
path = "user.profile.email"  # ネストされたメールアドレスを置換

配列要素の置換

# 配列要素の置換
path = "items[0]"  # 最初のアイテムを置換
path = "items[0].title"  # 最初のアイテムのタイトルを置換
path = "users[2].name"  # 3番目のユーザー名を置換

複合パスの置換

# ネストされた配列内の置換
path = "orders[0].items[1].price"  # 最初の注文における2番目の商品の価格を置換

使用例 (Examples)

基本的な値の置換

# 元の JSON: {"user": {"name": "John", "age": 30}}
# Path: "user.name"
# 置換する値 (replacement_value): "Jane"
# 出力: {"user": {"name": "Jane", "age": 30}}

配列要素の置換

# 元の JSON: {"items": [{"title": "Book", "price": 25}, {"title": "Magazine", "price": 10}]}
# Path: "items[0].title"
# 置換する値 (replacement_value): "Novel"
# 出力: {"items": [{"title": "Novel", "price": 25}, {"title": "Magazine", "price": 10}]}

新しいパスの作成

# 元の JSON: {"user": {"name": "John"}}
# Path: "user.email"
# 置換する値 (replacement_value): "john@example.com"
# 出力: {"user": {"name": "John", "email": "john@example.com"}}

ネストされた配列内の置換

# 元の JSON: {"orders": [{"items": [{"name": "Product A"}, {"name": "Product B"}]}]}
# Path: "orders[0].items[1].name"
# 置換する値 (replacement_value): "Product C"
# 出力: {"orders": [{"items": [{"name": "Product A"}, {"name": "Product C"}]}]}

配列の拡張

# 元の JSON: {"items": [{"title": "Book"}]}
# Path: "items[2].title"
# 置換する値 (replacement_value): "Magazine"
# 出力: {"items": [{"title": "Book"}, null, {"title": "Magazine"}]}

ユースケース (Use Cases)

  • データの更新: 設定データやユーザーデータの特定フィールドを動的に修正
  • API 連携: 新しい値でリクエストペイロードを更新
  • データ変換: 異なるシステム向けに JSON 構造を調整
  • テンプレート処理: テンプレート JSON に動的な値を流し込み
  • 設定管理: JSON 設定ファイル内のパラメータを更新