JSON差分比較
JSON Diff
キーの順序を無視して2つのJSONを構造で比べ、追加・削除・変更されたパスを挙げます。
2つのJSON文書を、テキストとしてではなく構造として比べます。だからキーの順序やインデントの違いは差分になりません。出力は、何が変わったかを読める表と、左の文書を右の文書へ正確に変えるRFC 6902のパッチの2つです。
先に二つの配列を突き合わせます。一つ挿入しただけなら百件ではなく一件になります。
左
右
使い方
2つの文書を貼り付けます
APIのレスポンス2つ、設定ファイル2つ、あるいは変更の前と後です。比較はワーカーで走り、入力に合わせて更新されます。
配列の比べ方を選びます
結果が使い物になるかどうかを決める設定です。「揃えて」は2つの配列を先に対応づけるので、要素を1つ挿入したことが1件の変更になります。「位置で」は同じ位置どうしを比べるもので、順序そのものがデータであるときに正しい選択です。「キーで」は指定したメンバーで要素を対応づけます。同じものを違う順序で返す2つのレスポンスに対する答えです。
nullを「無い」とみなすかどうかを決めます
空のフィールドをそもそも出さないシリアライザもあれば、`null`と書くものもあります。異なる2つのスタックの出力を比べているなら、これを有効にするだけで偽の差分が1ページ分消えます。
表を持っていくか、パッチを持っていきます
表は読むため、パッチは適用するためのものです。どちらも経路はRFC 6901のポインタなので、JSON Patchを解するどのツールにも貼り付けられます。
よくある質問
配列に1つ挿入しただけなのに、100件の変更として出るのはなぜですか
配列の比べ方が「位置で」になっているからです。1番目と2番目を比べることになり、全部がずれます。2つの配列を先に対応づける「揃えて」に変えるか、要素にidがあるなら「キーで」を使ってください。
パッチをここで適用できますか
できません。このページは作るだけです。ただしパッチは正確です。左の文書に適用すれば、データモデルの水準で右の文書がそのまま出てきますし、その往復は変更のたびにテストが確かめています。
「2つの文書は関係がない」と出ます
変更が2万件を超えて比較を止めたときに出る案内です。その地点から先、差分は役に立つことを何も言えません。1つの文書の2つの版ではなく、まったく別の2つの文書を比べています。
キーの順序が問題になることはありますか
このツールにとってはありません。JSONのオブジェクトには順序がないので、キーの順序だけが違う2つの文書は同一だと報告します。受け取る側にとってキーの順序が問題になるなら、その受け取る側はJSONが約束していないものに頼っています。
ここから渡せます
テキスト差分比較
Text Diff
2つの文章を左右に並べるか1行に重ねて、行・単語・文字のいずれかの粒度で比べます。
JSONフォーマッター・検証
JSON Formatter & Validator
JSONを整形・圧縮して検証し、構文エラーがあれば行と列を正確に指し示します。
JSONPathテスター
JSONPath Tester
JSONPathの式を文書に対して実行し、打っているあいだ一致するノードを光らせます。
OpenAPIの差分比較
OpenAPI Diff
2つのOpenAPI文書を比べ、互換性を壊す変更と足しただけの変更を分けて示します。
次の一手
このツールが出したものをそのまま受け取れる道具です。
JSONフォーマッター・検証
JSON Formatter & Validator
JSONを整形・圧縮して検証し、構文エラーがあれば行と列を正確に指し示します。
JSONPathテスター
JSONPath Tester
JSONPathの式を文書に対して実行し、打っているあいだ一致するノードを光らせます。
OpenAPIの差分比較
OpenAPI Diff
2つのOpenAPI文書を比べ、互換性を壊す変更と足しただけの変更を分けて示します。
テキスト差分比較
Text Diff
2つの文章を左右に並べるか1行に重ねて、行・単語・文字のいずれかの粒度で比べます。
Base64エンコード・デコード
Base64 Encoder & Decoder
テキストでもファイルでもBase64とBase64URLを符号化・復号し、UTF-8も正しく扱います。
curlをコードに変換
curl to Code
curlのコマンドをfetch・axios・Pythonのrequests・Go・PHP・PowerShellのコードに変換します。