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 の変更をレビューする人のために作られています。ソース、ターゲット、パッチはデバイス上で処理され、ブラウザから外に出ることはありません。
機能
- 2 つの JSON ドキュメントから、最小の RFC 6902 パッチ(add/remove/replace/move/copy)を生成
- パッチ配列をソースドキュメントに適用し、パッチ後の結果を即座に表示
- すべての操作を検証 — 未知の操作、失敗した test、解決できないパスは飛ばさず報告
- null 値がキーを削除する RFC 7386 JSON Merge Patch を適用
- キー順に依存しない差分なので、並べ替えたキーが余計な操作を生まない
- パッチや結果をコピー、または .json ファイルとしてダウンロード
- リアルタイムの valid/invalid バッジが、どちらの側に JSON 構文エラーがあるかを特定
- すべてブラウザ内で動作 — ドキュメントとパッチはデバイス上に留まります
JSON Patch ジェネレーター の使い方
- 2 つのドキュメントを差分するなら Generate、RFC 6902 パッチを実行するなら Apply patch、RFC 7386 なら Merge patch を選びます
- 左側にソース JSON を貼り付けます
- 右側にターゲットドキュメント、パッチ配列、またはマージパッチを貼り付けます
- 生成された操作やパッチ後の結果を読み、コピーするかダウンロードします
例
入力
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 の操作を生成します。
よくあるエラーとトラブルシューティング
- Apply モードが、パッチは操作の配列でなければならないと表示する。 — RFC 6902 のパッチは [ { "op": "add", "path": "/x", "value": 1 } ] のような JSON 配列です。単一の操作オブジェクトを角括弧で包んでください。
- remove や replace の操作が、解決できないパスで失敗する。 — パスはソースにすでに存在していなければなりません。タイプミスがないか確認し、パスはスラッシュで始まること、キー内の / と ~ は ~1 と ~0 にエスケープすることを思い出してください。
- test 操作がパッチ全体を失敗させる。 — RFC 6902 のパッチは全か無かです。失敗した test はパッチを中止するので、続く操作が走る前に、test された値がソースと正確に一致することを確認してください。
- マージパッチが、1 項目を編集する代わりに配列全体を置き換えた。 — RFC 7386 には要素単位の配列編集がありません — マージパッチ内の配列は配列全体を上書きします。項目ごとの変更にはインデックス付きパスの 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 ツール