JSON Patch ジェネレーター&適用ツール

2 つのドキュメント間の RFC 6902 JSON Patch を生成、パッチをソースに適用、または RFC 7386 マージパッチを実行 — すべてブラウザ内で。

JSON Patch ジェネレーターは完全にブラウザ内で動作します。貼り付けたドキュメントやパッチはデバイス上で差分・適用され、ArrayKit にアップロードされることはありません。

JSON 差分ツールを開く

JSON Patch ジェネレーター について

JSON Patch ジェネレーターは、2 つの JSON ドキュメントの差分を、きれいな RFC 6902 の操作配列 — ソースをターゲットに変える add、remove、replace、move、copy のステップ — に変えます。Apply モードに切り替えると、パッチをソースドキュメントに対して実行して正確な結果を確認でき、すべての操作が検証されるので、不正な操作や失敗した test が黙って飛ばされるのではなく捕捉されます。3 つ目のモードは RFC 7386 の JSON Merge Patch を適用します。ここでは null 値がキーを削除し、オブジェクトはキーごとにマージされます。PATCH エンドポイントを組み立てる開発者、設定を同期する人、API の変更をレビューする人のために作られています。ソース、ターゲット、パッチはデバイス上で処理され、ブラウザから外に出ることはありません。

機能

JSON Patch ジェネレーター の使い方

  1. 2 つのドキュメントを差分するなら Generate、RFC 6902 パッチを実行するなら Apply patch、RFC 7386 なら Merge patch を選びます
  2. 左側にソース JSON を貼り付けます
  3. 右側にターゲットドキュメント、パッチ配列、またはマージパッチを貼り付けます
  4. 生成された操作やパッチ後の結果を読み、コピーするかダウンロードします

入力

source: {"active":true,"roles":["admin"]}
target: {"active":false,"roles":["admin","editor"]}

出力

[
  { "op": "replace", "path": "/active", "value": false },
  { "op": "add", "path": "/roles/1", "value": "editor" }
]

Generate は、ソースをターゲットに変える RFC 6902 の操作を生成します。

よくあるエラーとトラブルシューティング

よくある質問

RFC 6902 の JSON Patch とは何ですか?
RFC 6902 は、JSON ドキュメントへの変更を、操作の順序付き配列 — add、remove、replace、move、copy、test — として記述する形式で、各操作は JSON Pointer のパスを対象にします。配列をソースに適用するとターゲットが得られます。
JSON Merge Patch(RFC 7386)は JSON Patch(RFC 6902)とどう違いますか?
マージパッチはそれ自体がターゲットを映した JSON オブジェクトです:存在するキーは設定され、null 値はキーを削除し、配列とスカラーは丸ごと置き換えられます。よりシンプルですが、RFC 6902 の操作のように値を move したり個々の配列要素を編集したりはできません。
2 つの JSON ドキュメントからパッチをどう生成しますか?
Generate のまま、元を左に、変更後を右に貼り付けると、ツールが最小の RFC 6902 操作配列を計算します。差分はキー順を無視するので、並べ替えたフィールドが余計な操作を作ることはありません。
パッチの適用が失敗したのはなぜですか?
操作はソースに対して検証されます。よくある原因は、remove や replace で存在しないパス、値が一致しない test 操作、無効な op 名です。ツールは具体的なエラーを表示するので、その操作を修正できます。
マージパッチは本当に null でキーを削除しますか?
はい。RFC 7386 では、null に設定されたプロパティは、マージにそのキーを結果から削除するよう指示します。実際の null を格納するには、代わりに RFC 6902 の replace 操作を使わなければなりません。
私の JSON ドキュメントやパッチはどこかにアップロードされますか?
いいえ。ジェネレーター、パッチ適用、マージパッチのエンジンはすべてブラウザ内でローカルに動作します。ソース、ターゲット、パッチのデータはデバイス上で処理され、ArrayKit に送られることはありません。

関連ツール

すべての ArrayKit ツール