コンテンツへスキップ
uencoder

JSON Patch(RFC 6902)のオペレーションを適用する

JSON Patch は、JSON ドキュメントをアトミックに変更する一連のオペレーション(add、remove、replace、move、copy、test)を定義します。

  1. 1

    JSON Patch(RFC 6902)は、オペレーションの配列を JSON ドキュメントに適用します。オペレーションは add(挿入または置換)、remove(削除)、replace(上書き)、move(移動)、copy(複製)、test(続行前の値検証)です。各オペレーションは JSON Pointer のパスを使います。

  2. 2
    JSON フォーマッター →

    元のドキュメントとパッチ配列の両方をフォーマットして、有効な JSON であることを確認しましょう。パッチは {op, path, value?} オブジェクトの配列です。適用前にフォーマットすれば構文エラーを発見できます。

  3. 3
    JSON バリデーター →

    パッチの構造を検証します:各オペレーションには「op」(add/remove/replace/move/copy/test のいずれか)と「path」(JSON Pointer)が必要です。add と replace には「value」が、move と copy には「from」が、test には比較用の「value」が必要です。

  4. 4

    「test」オペレーションは条件付きパッチに役立ちます。後続のオペレーションを適用する前に値を検証するのです。いずれかの test が失敗すると、パッチ全体が拒否されます(アトミック性)。test を使えば楽観的並行制御を実装できます。バージョンフィールドを test してから変更を適用します。

よくある質問

JSON Patch はアトミックですか?
はい。いずれかのオペレーションが失敗すると(例:test のアサーション失敗、remove 対象のパスが存在しない)、パッチ全体が拒否され、ドキュメントは変更されません。適切なバージョンテストと組み合わせれば、並行な変更に対して安全です。
JSON Patch と JSON Merge Patch の違いは?
JSON Patch(RFC 6902)は明示的なオペレーション(add/remove/replace)を使い、表現力が高くなります。JSON Merge Patch(RFC 7396)はより単純で、単一の JSON オブジェクトで null は削除、それ以外の値は置換を意味します。単純な更新には Merge Patch を、複雑な操作には 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 であることを確認する。
パイプライン

関連ツール