JSON Merge Patch(RFC 7396)を適用する
JSON Merge Patch は部分的な JSON オブジェクトでドキュメントを更新します。null はキーの削除、それ以外の値は置換を意味し、JSON Patch より単純です。
- 1
JSON Merge Patch(RFC 7396)はシンプルなマージです。パッチオブジェクトを取得してターゲットに適用します。パッチ内の各キーについて、値が null ならターゲットからそのキーを削除し、それ以外ならキーを設定/置換します。ネストされたオブジェクトは再帰的にマージされます。JSON Patch より表現力は低いですが、はるかにシンプルです。
- 2 JSON フォーマッター →
元のドキュメントとマージパッチを整形します。パッチは特別な構造のない、ただの JSON オブジェクトです。マージ前に両方を整形して、有効な JSON であることを確認してください。
- 3 JSON バリデーター →
マージ結果を検証します。マージは単純です。パッチ内の各キーについて、null ならターゲットから削除、それ以外ならターゲットに設定します。結果を検証して、マージが有効なデータを生成したことを確認してください。
- 4
制限:Merge Patch は null 値を追加できず(null は削除を意味する)、値の移動やコピーもできず、適用前のテストもできません。これらの操作には JSON Patch(RFC 6902)を使ってください。Merge Patch は、フォームや API の PATCH リクエストによるシンプルな部分更新に最適です。
よくある質問
- Merge Patch と JSON Patch はいつ使い分けますか?
- シンプルな部分更新(例: PATCH /api/user でリソースのいくつかのフィールドを更新)には Merge Patch を使います。値の移動/コピー、条件のテスト、null 値の追加が必要な場合は JSON Patch を使います。Merge Patch はよりシンプルですが、表現力は低くなります。
- Merge Patch では配列はどう扱われますか?
- 配列は要素ごとにマージされず、全体が置き換えられます。パッチに {tags: ["a", "b"]} があると、tags 配列全体が置き換えられます。個々の配列要素を変更するには、配列インデックスのパスを使った JSON Patch を使ってください。
このタスクを解決するワークフロー
命名ケース変換と JSON 検証
識別子を対象の命名規則に変換し、構造を確認するために出力を JSON として検証する。 パイプライン
JSON 経由で 2 つの YAML 設定を比較
構造化された値の差分比較しやすいように、YAML 設定を JSON に変換する。 パイプライン
URL 転送用の JSON ペイロードのエンコード
JSON ドキュメントを URL パラメータ用に準備する: 整形、Base64 エンコード、パーセントエンコード — ネストされたパラメータデコードチェーンの正確な逆順。 パイプライン
HJSON から JSON フォーマットへ変換
HJSON をフォーマットし、標準 JSON に変換する。 パイプライン
JS フォーマットと JSON 検証
JS コードをフォーマットし、その後 JSON として検証する。 パイプライン
JSON フォーマットと整合性チェックサム計算
JSON ドキュメントを整形し、以降の変更を検出するために CRC32 チェックサムを計算する。 パイプライン
JSON のミニファイと検証
検査のために JSON をフォーマットし、1 パスで構文的に正しいことを検証する。 パイプライン
JSON Schema 生成と検証
サンプルデータから JSON Schema を生成し、それに対して検証する。 パイプライン
JSON フォーマットと TypeScript インターフェース生成
JSON ドキュメントをフォーマットし、1 チェーンで TypeScript インターフェース定義を推論する。 パイプライン
検証、フォーマット後 JSON から YAML へ変換
(ミニファイの可能性がある)JSON 設定を YAML に変換し、微妙に誤った YAML を生成成する代わりに最初のノードで構文エラーを捕捉する。 パイプライン
JSON5 から JSON フォーマットへ変換
JSON5 をフォーマットし、標準 JSON に変換する。 パイプライン
JSONC から JSON フォーマットへ変換
JSONC(コメント付き JSON)をフォーマットし、標準 JSON に変換する。 パイプライン
JWT ペイロードのデコードとフォーマット
JWT トークンを解析し、ペイロードを抽出し、検査のために JSON をフォーマットする。 パイプライン
クエリ文字列解析と JSON フォーマット
クエリ文字列をキー・バリューペアに解析し、その後 JSON としてフォーマットする。 パイプライン
TOML から JSON へ変換
TOML 設定ファイルを JSON 入力を期待するツールや API のために解析する。 パイプライン
JSON 経由で TOML から YAML へ変換
TOML 設定ファイルを YAML 形式に変換し、JSON を中間表現として使用する。 パイプライン
ネストされた URL パラメータのデコード(Base64 JSON)
URL エンコード Base64 JSON を運ぶ URL パラメータを可読なフォーマット済み JSON に展開する。 パイプライン
YAML から TypeScript インターフェースを生成
YAML ドキュメントを TypeScript インターフェース定義に変換し、JSON を中間フォーマットとして使用する。 パイプライン
YAML の検証とフォーマット
YAML を JSON に変換して構造を検証し、その後 JSON が well-formed であることを確認する。 パイプライン