Przejdź do treści

Aplikator JSON Patch

Zastosuj RFC 6902 JSON Patch (lub RFC 7396 merge patch) do dokumentu JSON.

Wejście
Patch (JSON)
Wynik

Aplikator JSON Patch

Wklej dokument JSON i patch, to narzędzie stosuje patch i zwraca wynikowy dokument. Obsługuje RFC 6902 JSON Patch — standardową tablicę operacji add, remove, replace, move, copy i test — oraz RFC 7396 JSON Merge Patch, prostszy format "opisz kształt jaki chcesz" używany przez wiele REST API dla żądań PATCH.

Zanim coś się uruchomi, patch jest sprawdzany pod kątem problemów strukturalnych: nieznana nazwa operacji, brakująca lub uszkodzona "path", brakująca "value" dla add/replace/test, lub brakująca "from" dla move/copy wszystko zostanie złapane z góry i zgłoszone z dokładnym indeksem operacji, zamiast awarii w połowie drogi. Po przejściu przez tę kontrolę opcja w przypadku błędu decyduje co się stanie jeśli poszczególna operacja nadal się nie powiedzie w czasie aplikacji (ścieżka która już nie istnieje, test który się nie zgadza): zatrzymaj się przy pierwszym błędzie i zachowaj to co już zostało zastosowane, lub pomiń to i kontynuuj. Włącz ślad krok po kroku aby zobaczyć dokument po każdej operacji — nieocenione gdy dziewięcioetapowy patch robi coś niespodziewanego na etapie szóstym. Suchy przebieg oblicza wszystko bez zmiany wyniku, więc możesz sprawdzić czy patch jest bezpieczny zanim mu ufasz.

Ścieżki JSON Pointer ściśle zgodne z RFC 6901, włączając token "-" dla dołączenia tablicy i escape-y ~0 / ~1 dla "~" i "/" wewnątrz klucza. Move i copy czytają źródło z "from" i piszą z "path"; test porównuje strukturalnie, ignorując kolejność kluczy obiektu. Wyjście można sformatować ze wcięciami dla czytelności lub skompresować dla wklejenia z powrotem do wywołania API, a suma raportuje ile operacji zostało zastosowanych, nie powiodło się lub zostało pominięte.

Wszystko działa lokalnie w twojej przeglądarce — dokument i patch nigdy nie są przesyłane nigdzie, więc bezpiecznie używać z rzeczywistymi payloadami API lub plikami konfiguracyjnymi. Skopiuj wynik, pobierz go jako plik .txt, lub wyślij go bezpośrednio z powrotem do wejścia aby zastosować inny patch na górze.

Częste pytania

Jaka jest różnica między JSON Patch a JSON Merge Patch?
JSON Patch (RFC 6902) to jawna lista operacji — dodaj to, usuń tamto, przesuń to tutaj — więc może wyrazić precyzyjne zmiany jak zmiana kolejności tablicy. JSON Merge Patch (RFC 7396) to tylko częściowy obiekt JSON opisujący nowy kształt; klucz ustawiony na null go usuwa, wszystko inne go zastępuje. Merge patch jest prostszy do ręcznego napisania ale nie może wyrazić edycji tablicy lub "usuń ten klucz" versus "ustaw go na null" bez dwuznaczności.
Co się stanie, jeśli operacja zawiedzie w połowie drogi?
Z "zatrzymaj się przy pierwszym błędzie", operacje które już zostały zastosowane pozostają zastosowane a reszta jest pomijana — suma i ślad pokazują dokładnie gdzie się zatrzymało. Z "pomiń i kontynuuj", każda operacja jest próbowana i tylko operacje które zawierają się w wyniku są wykluczone.
Co dokładnie robi suchy przebieg?
Suchy przebieg sprawdza patch i symuluje każdą operację, więc suma i ślad pokazują dokładnie co by się stało, ale pole wyjścia nadal wyświetla twój oryginalny, niezmieniany dokument. Nic nie jest "zapisane" nigdzie w narzędziu przeglądarki — to jest sposób aby zobaczyć efekt patcha zanim mu ufasz.
Czy sprawdza patch przed aplikacją?
Tak. Nieznana nazwa operacji, ścieżka która nie jest prawidłowym JSON Pointer, lub brakujące pole "value"/"from" wszystko zostanie złapane przed uruchomieniem jakiejkolwiek operacji i błąd nazwie indeks operacji abyś mógł to znaleźć w długim patchu.
Czy mój JSON gdzieś się przesyła?
Nie. Zarówno dokument jak i patch są przetwarzane całkowicie w twojej przeglądarce i nigdy nie opuszczają twoje urządzenie.